コピペコードで快適生活

明日使えるソースを自分のために

sedコマンドの基本を知っておく

基本系

  • eオプションにコマンドを渡して使う

コマンドにはs(置換), d(行削除), p(行抽出)などがある。

cat input.txt | sed -e 'コマンド'
# もしくは
sed -e 'コマンド' input.txt

使用例

# 正規表現で文字列の置換を行う
cat input.txt | sed -e 's/xxx/XXX/g' 

# 指定行を削除する
cat input.txt | sed -e '1,10d'

# 指定行だけ出力する
# ※nコマンドはpで指定した行だけを抽出するオプション
cat input.txt |sed -n -e '1,10p'

# 正規表現でマッチする行を削除
cat input.txt | sed '/hoge/d'

# 正規表現でマッチする行だけ出力
cat input.txt | sed -n -e '/hoge/p'

# 10行目から20行目を全置換
# ※sコマンドの前に数字を置くと、その行のみが対象となる。
$ sed 3,5s/abc/ABC/g

# ファイルを置換する
# -i, --in-place オプションを使う
sed -i -e 's/before/after/g' target.txt

こんな便利なことも

# 後方参照
echo 090-1111-2222 | sed 's/\(...\)-\(....\)-\(....\)/\1\2\3/' # => 09011112222

こちらのサイトにて勉強させていただきました。
https://hydrocul.github.io/wiki/commands/sed.html