识别纯文本文件中的不可见字符

识别纯文本文件中的不可见字符

我正在处理一个纯文本文件,其中含有我不认识的不可见字符。我该如何识别它们?

在 Atom 中,当我切换为显示不可见字符时,它们显示为空白。它们不显示为公共空格(Atom 显示为中心小点)。

在 BBEdit 中,它显示为一个居中的点,看起来比公共空间略粗。替换非 ASCII 字符(使用“zap gremlins”)不会替换它。

我可以将字符复制到正则表达式中,查询将找到该字符。 它不会被识别为带有 的空格字符\s

我会复制这里的字符(箭头之间),但我不知道它是否真的会出现!-> <-

(哇,粘贴一个未知的隐形字符感觉很尴尬......)

答案1

使用十六进制编辑器应该会显示您可以查找或搜索的十六进制代码。

如果您想坚持使用(bash?)终端,您可以将整个文件放在hexdump/ 中hd,或者可能是grep有问题的行,然后将其通过管道传输,hd这样您就只看到一行,类似于:

grep "unique line text" file | hd

或者只获取第 N 行
sed 'Nq;d file'

还有所有可打印字符的正则表达式字符类:

‘[:print:]’
 Printable characters: ‘[:alnum:]’, ‘[:punct:]’, and space.

寻找-v它们的逆 ( ) 可能会有用,例如
grep -v "[[:print:]]"

或者,如果您可以成功复制它,您可以将其粘贴到十六进制编辑器或echo " " | hd命令中......

相关内容