カテゴリ
HTML PostgreSQL linux

【シェルスクリプト】sedコマンドを使った文字列置換

文字列置換

使い方「sed 's/置換前/置換後/'」 1行ごとに最初に見つかった置換対象を置換する

echo abc | sed 's/a/b/'
#結果:bbc

echo abcabc | sed 's/a/b/'
#結果:bbcabc

置換対象を全て置換するには「g」を付ける

echo abcabc | sed 's/a/b/g'
#結果:bbcbbc

置換対象を再利用する方法1つ目「&」を使う

echo abc | sed 's/a/&&/'
#結果:aabc

置換対象を再利用する方法2つ目「()」を使う
「()」で囲んだ1つ目は「\1」、2つ目は「\2」

echo abc | sed -E 's/(a)/\1\1/'
#結果:aabc

置換を使った文字列の追加・削除

「^」で行頭を指定、行頭には何もない(空文字列)ので、これを置換することで文字列を追加する

echo abc | sed 's/^/x/'
#結果:xabc

行末も同様

echo abc | sed 's/$/x/'
#結果:abcx

「^.」で行頭の1文字を指定して空文字列に置換することで削除する

echo abc | sed 's/^.//'
#結果:bc

行末も同様

echo abc | sed 's/.$//'
#結果:ab