sedで遊んでたとき、GNU sedにスペース区切りの文字列の各文字間や、文字列の前後を指定するパターンがあるということを知ったので、備忘で残しておく。
GNU sedでは文字列の各文字列間は「\B」、文字列の前後は「\b」で指定できるので、これを利用すれば良い。

echo abcdefg hijklmn | sed 's/\B/X/g' # 文字列の各文字間
echo abcdefg hijklmn | sed 's/\b/X/g' # 文字列の前後
blacknon@BS-PUB-UBUNTU-01:~$ echo abcdefg hijklmn | sed 's/\B/X/g' # 文字列の各文字間
aXbXcXdXeXfXg hXiXjXkXlXmXn
blacknon@BS-PUB-UBUNTU-01:~$ echo abcdefg hijklmn | sed 's/\b/X/g' # 文字列の前後
XabcdefgX XhijklmnX
Sponsored Links

ちなみに、両方の条件で指定する場合は以下のようにする。

echo abcdefg hijklmn | sed -r 's/(\b|\B)/X/g' # 文字列の前後・各文字間
blacknon@BS-PUB-UBUNTU-01:~$ echo abcdefg hijklmn | sed -r 's/(\b|\B)/X/g' # 文字列の前後
XaXbXcXdXeXfXgX XhXiXjXkXlXmXnX

 

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*