ユーザ用ツール

サイト用ツール



最近の更新




タグ一覧

タグ#
1
1
1
1
1
1
1
1
1
1
linuxコマンド:sed

sed

区切り文字は'/'がよく使用されているが,'s'の次の文字が区切り文字を意味するため任意に指定できる.
例えば以下は同じことを意味する.

$ sed -i -e 's/before/after/' <file>
$ sed -i -e 's@before@after@' <file>

例題

以下のような内容の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
linuxコマンド/sed.txt · 最終更新: 2021/01/15 02:53 by michiya