我正在处理一个纯文本文件,其中含有我不认识的不可见字符。我该如何识别它们?
在 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
命令中......