Unixコマンド/sed
sed †
機能 †
sedコマンドは、文字の置換を行うコマンドです。
構文 †
sed [オプション] [コマンド] [ファイル名]
オプション †
-e 次にくるのがコマンドとする。 -f 次にくるのがスクリプトとする。
コマンド †
d 行を削除 -s/// それぞれの行で最初に一致した文字列だけ置換(s/パターン/置換文字列/) -s///g 全体を置換(s/パターン/置換文字列/g) -s///数値 それぞれの行で指定した数値番目の文字列だけ置換(s/パターン/置換文字列/数値)
コマンド例 †
■Sed で空白行・空白を削除する
color(red){'/^$/d'};が条件とコマンドの個所だが、
/と/の間が条件です。この場合[^]が行頭の意味[$]が行末の意味
つまり行頭からいきなり行末の行を削除するという意味
$ cat test.txt ------------------------------------- 1行目 2行目 3行目 ------------------------------------- $ sed '/^$/d' test.txt ------------------------------------- 1行目 2行目 3行目 -------------------------------------
■week.txtの1から5行目を削除する。
$ cat week.txt ------------------------------------- Sunday Monday Tuseday Wensday Thursday Friday Saturday ------------------------------------- $ sed '1,5d' week.txt ------------------------------------- Friday Saturday -------------------------------------
■penを山本に置換する。
$ cat test.txt ------------------------------------- 私はpenです。 ------------------------------------- $ sed 's/pen/山本/g' test.txt ------------------------------------- 私は山本です。 -------------------------------------
■改行文字も含めて挿入(置換)する方法。
$ cat test.txt ------------------------------------- aaaaa bbbbb ccccc ddddd eeeee fffff ggggg matsui ------------------------------------- $ sed '1s/^/1Line\ > /' test.txt ------------------------------------- 1Line aaaaa bbbbb ccccc ddddd eeeee fffff ggggg matsui -------------------------------------