一般的に、ファイル内のパスを sed で置換したいときはこんな感じに書きます。
$ find /usr/local/bin -type f | sed -e 's/\/usr\/local\/bin\///'
/
と \/
で意味が違うので、なんか見づらい……
という訳で。
sed の正規表現で置換する場合、s/ORIG/REP/
の形式で書くのが一般的ですが、
この /
は実は、3か所とも同じ記号を使っていればそれで良いという話です。
つまり、/
を通常文字として使用するパスを扱う場合は、/
の代わりに例えば #
を使って、
s#ORIG#REP#
の形式で書いても OK という訳です。この場合、/
を使う時にエスケープは不要です。
すると。
$ find /usr/local/bin -type f | sed -e 's#/usr/local/bin/##'
こんな感じでかなり読みやすくなりました。 …と思いませんか?