コンソール上で非ASCII文字だけを置換する
Pocket

前に、grepで非ASCII文字だけを抽出(排除)するということをやっていたけど、今回は置換してみる。
置換といえばまずはsedになるのが、sed(GNU sed)でASCII文字以外を置換する場合、以下のようにする。

echo これはTESTなんだよ | sed 's/[^\d0-\d127]/xx/g'
< echo これはTESTなんだよ | sed 's/[^\d0-\d127]/xx/g'
xxxxxxTESTxxxxxxxx

 

もちろん、その逆でASCII文字だけを置換することも可能。

echo これはTESTなんだよ | sed 's/[\d0-\d127]/X/g'
< echo これはTESTなんだよ | sed 's/[\d0-\d127]/X/g'
これはXXXXなんだよ

 

Sponsored Links

ちなみに、perlを使う場合だともうちょっと楽に指定ができる。

echo "これはTESTなんだよ" | perl -pe 's/[^[:ascii:]]/x/g'
echo "これはTESTなんだよ" | perl -pe 's/[[:ascii:]]/x/g'
 < echo "これはTESTなんだよ" | perl -pe 's/[^[:ascii:]]/x/g'
xxxxxxxxxTESTxxxxxxxxxxxx
< echo "これはTESTなんだよ" | perl -pe 's/[[:ascii:]]/x/g'
これはxxxxなんだよx

 

余り使う機会はなさそうだけど、ASCII文字だけのテストデータを作りたいとか、そういうときに使えるかも。

 

Pocket

Written by blacknon

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

Leave a Comment

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

*