我正在尝试从文件记录中删除不可打印字符(例如^@
)。由于文件中记录的数量太多,所以使用cat命令不是一个选项,因为循环需要太长时间。
我尝试过使用
sed -i 's/[^@a-zA-Z 0-9`~!@#$%^&*()_+\[\]\\{}|;'\'':",.\/<>?]//g' FILENAME
但仍然没有去除^@
字符。
同时我尝试使用
awk '{ sub("[^a-zA-Z0-9\"!@#$%^&*|_\[](){}", ""); print } FILENAME > NEW FILE
但它也没有帮助。
有人能建议一些替代的方法来删除非打印字符吗?
使用tr -cd
但它会删除重音符号。但是文件中需要它们。
emacs
中。 - Erik Bennettemacs
更快。检查文件是否包含多字节字符。 - Erik Bennett