LINUX COMPUTING

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
目次
PR
最近のトピック
週間アクセスランキング
デル株式会社
Copyright (C) 2017 Linux Computing All rights reserved