sedの区切り文字

※こちらの記事は2016年にQiitaに投稿した記事を再編集したものです

sedコマンドでファイルパスを置換したい時とか、たいてい以下みたいな感じに書くと思います。

$ echo /path/to/file | sed -e 's/path\/to/path2/g'
/path2/file

/をエスケープしなければいけないのでそのままコピペできなかったり見づらかったりいろいろ面倒です。

実は…

sedの区切り文字は/じゃなくても動きます。
例えば#で区切ってみると。

$ echo /path/to/file | sed -e 's#path/to#path2#g'
/path2/file

エスケープしなくていいので見やすいです。

ちなみに…

sの次の文字を区切り文字として使うのでこんな感じでも動きます。

$ echo /path/to/file | sed -e 'sxpath/toxpath2xg'
/path2/file

xで区切ってみたけど、これはこれで見にくいですね。

コメント

タイトルとURLをコピーしました