command
command description
d delete
i insert
a append
p print
q quit
y 1文字づつ置換
s 文字列を置換
address
複数コマンド実行 sed ‘1d; 3d’ 1行目と3行目を削除
複数行指定 sed ‘1,5d’ 1 – 5行目までを削除
指定行以外を実行 sed ‘1!d’ 1行目以外を削除
最終行を処理 sed ‘$d’ 最後の行を削除
Notice
  • コマンドはシングルクオートで囲う。ダブルクオートだと、コマンドによってうまく動かない?
e.g.
  • 編集する(上書きする)
sed -i '1d' tmp/original.txt
  • 編集時にバックアップを取る
sed -i.bk '1d' tmp/original.txt
  • ファイルに書いたscriptを実行する
sed -f delete.sed tmp/original.txt
  • 該当行のみを出力する
echo "name,value
abc,100
xyz,999" | sed -n '1p' # => name,value
echo "name,value
abc,100
xyz,999" | sed -n 's/abc/ABC/p' # => ABC
  • 1行目に挿入する
echo "abc" | sed '1i\--header--'
  • 1文字ずつ置換する
echo "abc
bdd" | sed 'y/b/B/'

全てのbがBになる

  • 2つ目のみを置換する
echo "1,a,a,a" | sed 's/a/A/2' # => 1,a,A,a