某个程序输出的文本结果中出现了特殊字符^ @,用grep匹配字符串时说是二进制文本,只好想办法去掉。
方法一:在vim下打开文件,可以看出本身就是个正常的文本文件,仅只是多了那几个特殊字符,输入:%s/\x00//g回车后即可删除。本来想照猫画虎用sed来处理,毕竟几百个文件都用vim操作是不现实的,结果发现用sed删除字符不成功,https://unix.stackexchange.com/questions/346291/editing-binary-streams-containing-x00-bytes
这里表示sed只能用来处理text文件。这个网站提供了另一种处理工具:
方法二:bbe,是一种类似于sed的流编辑工具,能处理二进制字符,可以这么操作bb -e ‘s/\x00//g’ output
另,在gawk中输出单引号,可以用\47