从 unix 中的文件中删除看不见的垃圾字符

从 unix 中的文件中删除看不见的垃圾字符

我正在尝试从文件中删除看不见的垃圾字符,可以使用 cat -v 看到这些字符。我在谷歌中找到了下面的脚本,但我很想知道下面的命令是如何工作的。

tr -cd '\11\12\40-\176' < Actual_file.txt > Actual_clean.txt

谢谢。

答案1

这是一种迟钝的写作方式tr -cd '\t\n -~' ...

-c表示补充,-d表示删除。这将删除除制表符、换行符和 ASCII 可打印字符(以空格开头并以波形符结尾)之外的所有字符。请参阅 man ascii(7)。

它还会删除可打印的 utf-8 字符,这些字符在现代 Unix 系统上大量使用,所以有点过分了。

相关内容