私はPerlに詳しくありません。これを実行した場合の影響を知りたい:
 cat file_name | tr -d '\000' | perl -pi -e 's/[^\n\040-\176]/#/g' >  new_file.out 
    私はPerlに詳しくありません。これを実行した場合の影響を知りたい:
 cat file_name | tr -d '\000' | perl -pi -e 's/[^\n\040-\176]/#/g' >  new_file.out 
    "file_name" という名前のファイルを読み取り、すべてのシンボル\000(ヌル シンボル) を削除し、 ではない\n、または の間\040-\0176にあるすべてのシンボルを置き換え#、最後に結果を "new_file.out" に書き込みます。
これにより、次の 2 つのことが行われます。
「入力ファイルをインプレースで変更する」という意味で、そこに入力ファイルがないので、perl-piは私に関係があります。-i
catと`trを削除して使用するだけで、コマンドライン全体を短縮できると思います。
perl -pe 's/[^\n\040-\176]/#/g' file_name >  new_file.out
そして、実際に-iスイッチを利用して使用することができます
perl -p -i -e's/[^\n\040-\176]/#/g' file_name
クリーンアップされたバージョンがファイルに入れられますfile_name。
安全のためにバックアップバージョンが必要な場合は、に変更-iする-i.bakと、新しいコンテンツが挿入されfile_name、古いコンテンツが保持されfile_name.bakます。
注:私のバージョンは完全に同等ではありません。以下のコメントを参照してください。