12,000
毎6
時間生成される約行のファイルがあります。これらの行のいくつかには、ASCII 以外の文字があります。
Perl スクリプトを実行して、非 ASCII 文字を含むすべての行を削除できるようにしたいと考えています。
12,000
毎6
時間生成される約行のファイルがあります。これらの行のいくつかには、ASCII 以外の文字があります。
Perl スクリプトを実行して、非 ASCII 文字を含むすべての行を削除できるようにしたいと考えています。
できるよ:
perl -i.bak -ne 'print unless(/[^[:ascii:]]/)' file
の正規表現の説明/[^[:ascii:]]/
:
/
正規表現
[
の開始 文字クラスの開始
^
これを負の文字クラス (リストされているもの以外に一致するクラス) に
[:ascii:]
する 任意の ASCII 文字
]
文字クラスの
/
終了 正規表現の終了
#!/usr/bin/perl -p
END {close STDOUT}
use 5.010;
use utf8;
use strict;
use autodie;
use warnings qw<FATAL all>;
use open qw<IN :bytes OUT :encoding(US-ASCII) :std>;
BEGIN {$SIG{__WARN__}=sub{confess}}
use sigtrap qw<stack-trace normal-signals error-signals>;
use Carp;
"disconcertingly";