sed : 文字列を置換する
構文
sed (オプション) [filename]
説明
指定したパターンに一致した文字列を別の文字に置き換える。
オプション
-e 条件式 | 指定した条件式で変換処理を行う |
---|---|
-f ファイル名 | ファイルに記述された条件式で変換処理を行う |
主な条件式
行数 | 処理する行数を指定する |
---|---|
行数,行数 | 指定した行数間の文字列を処理する |
/文字列/ | 指定した文字列が現れる行を処理する。先頭に「^」を付けると指定した文字列から始まる行、末尾に「$」を付けると指定した文字列で終わる行が対象になる。処理の対象とする行の範囲の指定も可能 |
i 文字列 | 文字列を挿入する |
s/置換条件/置換文字/ | それぞれの行で最初に置換条件と一致した文字を置換文字に置き換える。最後に g をつけた場合は置換条件に一致した全てについて置換文字に置き換える。 |
使用例
$ cat file abcdefabcdef 123456123456 abc456abc456 123def123def 文字列「abc」を「ABC」に変換する $ cat file | sed -e "s/abc/ABC/" ABCdefabcdef 123456123456 ABC456abc456 123def123def 全ての文字列「abc」を「ABC」に変換する $ cat file | sed -e "s/abc/ABC/g" ABCdefABCdef 123456123456 ABC456ABC456 123def123def 1〜2行目の文字列「abc」を「ABC」に変換する $ cat file | sed -e "1,2s/abc/ABC/g" ABCdefABCdef 123456123456 abc456abc456 123def123def 文字列「abc」があった行に「# find abc」という新しい行を追加する $ cat file | sed -e "/abc/i # find abc" # find abc abcdefabcdef 123456123456 # find abc abc456abc456 123def123def 行頭に文字列「abc」があった場合削除する $ cat file | sed -e "s/^abc//" defabcdef 123456123456 456abc456 123def123def 行末に文字列「456」があった場合削除する $ cat file | sed -e "s/456\$//" abcdefabcdef 123456123 abc456abc 123def123def