TextWrangler和cat -v中空行的奇怪字符

phy*_*ion 4 textwrangler ascii line-endings

我有一个文本文件,在我的Mac上我用TextWrangler打开.我启用不可见的字符来查看行结尾.我看到每个空行都有一个红色的倒置问号.这是哪个角色?

当在我输入的终端中时cat -v file.txt,它将这些字符显示为^@(并且行结束自己为^M).我需要知道的是那个特定字符的正则表达式,比如/n行尾.

在十六进制转储中,我看到以下内容:

0000000: 312e 300d 0a00 0d0a 2231 3130 3030 3030  1.0....."1100000
0000010: 3030 3222 3b22 3922 3b22 5354 4422 3b3b  002";"9";"STD";;
0000020: 3b0d 0a22 3131 3030 3030 3030 3639 223b  ;.."1100000069";
Run Code Online (Sandbox Code Playgroud)

如果我手动删除奇怪的字符,并进行新的十六进制转储,我看到:

0000000: 312e 300d 0a0d 0a22 3131 3030 3030 3030  1.0...."11000000
0000010: 3032 223b 2239 223b 2253 5444 223b 3b3b  02";"9";"STD";;;
0000020: 0d0a 2231 3130 3030 3030 3036 3922 3b22  .."1100000069";"
Run Code Online (Sandbox Code Playgroud)

区别在于字节序列00.是否存在空行需要00的编码?

Abe*_*cee 9

你正在看的红色倒置问号显然是一个NULL/NUL字符.它是否有所不同取决于应用程序编写/读取有问题的文件.(所以,它很可能不是一般的编码问题.比较:维基百科.)
一旦你在TextWrangler中看到隐藏的字符,就可以标记那个/任何字符(或者那个字符序列),然后将它复制到使用CMD + E 查找输入字段.该NULL字符显示为我的机器上. 或者,您可以使用 - > Text - > Zap Gremlins ...选中(至少)Null(ASCII 0)字符,替换为选中的代码,然后被告知.搜索这些字符时,其中任何一个都应该起作用 - 无论是否启用了grep.但是,不确定是否应该在grep模式下实际找到它- 它不在我的机器上.但是grep它.\x{00}
\x00\s\W

如果需要调整/更详细,请评论.