====== sed ======
区切り文字は'/'がよく使用されているが,'s'の次の文字が区切り文字を意味するため任意に指定できる.
\\
例えば以下は同じことを意味する.
$ sed -i -e 's/before/after/'
$ sed -i -e 's@before@after@'
====== 例題 ======
以下のような内容のtext.txtを用意する.
before
before before
beforebefore
beforebeforebeforebefore
===== 区切り文字を'@' =====
$ sed -e 's@before@after@' text.txt
after
after before
afterbefore
afterbeforebeforebefore
===== gを追加 =====
'g'を指定しない場合は,行中に一致する最初の文字の置換をするが,'g'を指定した場合はその行すべてに適用することを意味する.
$ sed -e 's/before/after/g' text.txt
after
after after
afterafter
afterafterafterafter
===== 特定の文字を含む行の前に文字を挿入する =====
$ sed -e "$((`sed -n '/before before/=' text.txt` ))i\Inserted" text.txt
before
Inserted
before before
beforebefore
beforebeforebeforebefore
===== 特定の文字を含む行の後に文字を挿入する =====
$ sed -e "$((`sed -n '/before before/=' text.txt` ))i\Inserted" text.txt
before
before before
Inserted
beforebefore
beforebeforebeforebefore
===== 文頭に文字を追加 =====
$ sed -e "s/^/inserted/" text.txt
insertedbefore
insertedbefore before
insertedbeforebefore
insertedbeforebeforebeforebefore
特定の文字を含む行の場合,
$ sed -e'/before before/s/^/insert/g' text.txt
before
insertbefore before
beforebefore
beforebeforebeforebefore
===== 文末に文字を追加 =====
$ sed -e "s/\$/text/" text.txt
beforetext
before beforetext
beforebeforetext
beforebeforebeforebeforetext
特定の文字を含む行の場合,
$ sed -e'/before before/s/$/insert/g' text.txt
before
before beforeinsert
beforebefore
beforebeforebeforebefore