[Linux] => [Linuxコマンド(R〜Z)]


この日記のはてなブックマーク数 このエントリーを含むはてなブックマーク

sedコマンドは置換などに使用されます。


[書式]
sed オプション コマンド ファイル
sed オプション -e コマンド1 -e コマンド2 ファイル
sed オプション -f スクリプト ファイル


[主なオプション]
-e 次にくる因数はコマンドとみなす
-f 次にくる因数はスクリプトとみなす
-g 対象ファイル全体に適用する
-i 上書きモード(拡張子がある場合はバックアップをとる)

[主なコマンド]
d 行削除
s s/パターン/置換/で指定するパターンに対して置換する
g 最初のパターンだけでなく、すべて置換する
w file 置換できたファイルをファイルfileに保存
y trコマンド同様の置換を行う


[使用例]
#word.txtの30行目までを表示

sed 30q word.txt


#文字列 string を含む行を表示

sed -n '/string/p' file.txt


#index.htmlのSTRING_AをSTRING_Bに置換。(index.html.bakにバックアップ)

sed -i.bak 's/STRING_A/STRING_B/g' ./index.html


#10 行目から STRING を含む行までを表示

sed -n '10,/STRING/p' file.txt


### ksknet.netから</VirtualHost>までを表示

sed -n '/### ksknet\.net/,/<\/VirtualHost>/p' httpd.conf.20031017175947


#string を含む行から STRING を含む行までを表示

sed -n '/string/,/STRING/p' file.txt


#1〜9行目を削除する

sed '1,9d' sample.txt


#'#'で始まるコメント行を削除する。

sed '/^#/d' sample.txt


#空行を削除

sed '/^$/d' ./sample.txt


#file1.txt の 15 行目から 35 行目までを削除して file2.txt に保存する。

sed '15,35d' file1.txt > file2.txt


#abcをABCに置換する

sed s/abc/ABC/sample.txt


#すべての行に">"を挿入する

sed 's/^/\>/g' sample.txt


#@記号をすべて削除する。

sed 's/@//g' sample.txt


#マッチングした文字列abc@example.comを取り出す(マッチングした文字列は\1で取り出せる)

echo 'abc <abc@example.com>' | sed 's/.*<\(.*\)>/\1/'


#スクリプト「sedcom」に記されたコマンドを順次実行する。

sed -f secom sample.txt


#ファイルconvert.plを表示

sed -n p convert.pl


#pkgtools.confの436行目の末尾に  || -v -L /var/log/ports/ を追加

sed '436s/$/ ||\ -v \-L \/var\/log\/ports\//g' /usr/local/etc/pkgtools.conf


#pkgtools.confの436行目をPORTUPGRADE_ARGS = ENV['PORTUPGRADE'] || '-v -L /var/log/ports/'に置換

sed "436s/.*/PORTUPGRADE_ARGS = ENV[\'PORTUPGRADE\'] \|\| \'\-v \-L \/var\/log\/ports\/\'/g" /usr/local/etc/pkgtools.conf



広告