以下の形式のファイルがあります。
this is file data under the file 123�45
this is second line 123¿
私はこのO / Pが欲しい。
this is file data under the file 123045
this is second line 1230
ソースはUTF-8のみです。すべてのUTF-8文字は
001122×33行のように0に置き換える必要があります。 0011220033行は
次のように置き換える必要があります。
これは手動で実行するために使用する形式です。
grep -P "[^\x00-\x7F]" filename
答え1
使用sed
:
LC_ALL=C sed -E 's/[^[:alnum:][:blank:]]+/0/g' < infile
A-Z
、a-z
およびを除くすべての文字をゼロに置き換えます。上記の文字クラスに保持したい他の文字を追加してください。0-9
Tab
Space
UTF-8の場合は、locate
これを使用してバイトの代わりに文字を置き換えます。
LC_ALL='C.UTF-8' sed -E 's/[^[:alnum:][:blank:]]/0/g' < infile
答え2
使用tr
:
tr -sc '[:alnum:][:blank:]\n' 0
答え3
コマンド1:sed "s/[?*_><&%#@]/0/g" filename
output
this is file data under the file 123045
this is second line 1230
コマンド2:sed "s/[^a-z 0-9]/0/Ig" filename
出力
this is file data under the file 123045
this is second line 1230