试图只删除非ASCII字符

我试图操纵一个文本文件,并从文本中删除非ASCII字符。 我不想删除该行。 我只想删除有问题的字符。 我正试图让下面的expression式工作:

sed '/[\x80-\xFF]/d'

Solutions Collecting From Web of "试图只删除非ASCII字符"

建议的解决方案可能会失败,特定版本的sed,例如GNU sed 4.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]中的任何字符。