(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Linux】半角の英数字以外の文字列のみを表示する

スポンサーリンク

はじめに

とあるテキストにて全角文字(日本語)のみを出力したくて利用したワンライナーを紹介します。

半角英数以外を表示するワンライナー

$ cat hoge.txt |  sed -e "s/[0-9]//g" | sed -s "s/[[:lower:]]//g" | sed -s "s/[[:upper:]]//g" 
....

以下、補足です。

補足

半角数字を表示しない

以下で半角数字を消すことが可能です。

$ cat hoge.txt | sed -e "s/[0-9]//g" 
....

半角英字を表示しない

以下で半角英字の小文字を消すことが可能です。

$ cat hoge.txt | sed -s "s/[[:lower:]]//g"
....

大文字を消すのは以下。

$ cat hoge.txt | sed -s "s/[[:upper:]]//g"
....

括弧の数が多い理由は以下のようなエラーが出たからです。

$ cat hoge.txt |  sed -e "s/[:lower:]//g"
sed: character class syntax is [[:space:]], not [:space:]

環境によっては不要かもしれません。

(おまけ)記号を表示しない

以下で記号を消すことが可能です。

$ cat hoge.txt | sed -e "s/[[:punct:]]//g"
....

終わりに

HTMLやXMLのようにタグに囲まれた日本語を取り出したい際に利用したワンライナーです。

ご参考になれば幸いです。