Unixコマンド/sed の変更点
*&SIZE(15){''sed''}; [#p52d1c43]
[[dokuwiki.fl8.jp転載済み>http://dokuwiki.fl8.jp/doku.php/02_freebsd/80_unix%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/sed]]
**''機能'' [#w6d78ad2]
chshコマンドは、文字の置換を行うコマンドです。~
sedコマンドは、文字の置換を行うコマンドです。~
**''構文'' [#qd0c89f4]
sed [オプション] [コマンド] [ファイル名]
**''オプション'' [#yd6d3119]
-e 次にくるのがコマンドとする。
-f 次にくるのがスクリプトとする。
**''コマンド'' [#z4574e23]
d 行を削除
-s/// それぞれの行で最初に一致した文字列だけ置換(s/パターン/置換文字列/)
-s///g 全体を置換(s/パターン/置換文字列/g)
-s///数値 それぞれの行で指定した数値番目の文字列だけ置換(s/パターン/置換文字列/数値)
**''コマンド例'' [#u66b78b0]
■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
-------------------------------------