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
 -------------------------------------