Unix で非 ASCII 文字を含む行だけを抽出する Tips

grep で頑張ろうと思ったけど Perl を使ったほうが楽だった。

非 ASCII 文字を含む行を抽出する

$ cat FILE | perl -ne 'print if /[[:^ascii:]]/'

非 ASCII 文字を含まない (ASCII 文字のみの) 行を抽出する

$ cat FILE | perl -ne 'print unless /[[:^ascii:]]/'

ASCII 文字を含む行と含まない行をそれぞれ別のファイルに出力する

$ cat FILE | perl -ne 'if (/[[:^ascii:]]/) { print STDERR } else { print STDOUT }' 1> ASCII_FILE 2> NON_ASCII_FILE
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.