Pocket

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

 

 

Pocket

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

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

*