sedコマンドで行単位に処理するオプションの挙動メモ
行追加
特定の行の前に挿入するiオプション(insert)
aaa ccc eee
ccc行の前に挿入する
sed -i "/ccc/i bbb" test.txt
aaa bbb ccc eee
部分一致でも行単位で処理される
sed -i "/c/i bbb" test.txt
aaa bbb bbb ccc eee
一致する行すべて処理される
sed -i "/b/i x" test.txt
aaa x bbb x bbb ccc eee
特定の行の後ろに追加するaオプション(append)
aaa ccc eee
ccc行の後ろに追加する
sed -i "/ccc/a ddd" test.txt
aaa ccc ddd eee
部分一致でも行単位で処理される
sed -i "/c/a ddd" test.txt
aaa ccc ddd ddd eee
一致する行すべて処理される
sed -i "/d/a x" test.txt
aaa ccc ddd x ddd x eee
特定の行を置換するcオプション(change?)
aaa ccc eee
ccc行を置換する
sed -i "/ccc/c xxx" test.txt
aaa xxx eee
部分一致でも行単位で処理される
sed -i "/e/c xxx" test.txt
aaa xxx xxx
一致する行すべて処理される
sed -i "/x/c z" test.txt
aaa z z
おまけ
sedで文字列置換
sed -i "s/a/A/" test.txt
Aaa z z
これはgオプション(grep?)で一致する文字列すべてになる
sed -i "s/a/A/g" test.txt
AAA z z
さらにおまけ
上記すべてに付いてた-i
オプション(--in-place)はファイルを上書き保存する。
おしまい。