テキストファイルを操作して、テキストから非ASCII文字を削除しようとしています。行を削除したくありません。問題のある文字だけを削除したい。次の式を機能させようとしています。
sed '/[\x80-\xFF]/d'
提案された解決策は、特定のバージョンのsed、たとえばGNUsed4.2.1では失敗する可能性があります。
使用tr
:
tr -cd '[:print:]' < yourfile.txt
これにより、にない文字がすべて削除され[\x20-\x7e]
ます。
たとえば改行を保持したい場合は、次を追加するだけ\n
です。
tr -cd '[:print:]\n' < yourfile.txt
本当にすべてのASCII文字(制御コードも含む)を保持したい場合:
tr -cd '[:print:][:cntrl:]' < yourfile.txt
これにより、にない文字がすべて削除され[\x00-\x7f]
ます。