TextWrangler 和 cat -v 中空行的奇怪字符
Strange character for empty line in TextWrangler and cat -v
我有一个文本文件,在 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";
如果我手动删除奇怪的字符,并制作一个新的十六进制转储,我会看到:
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";"
不同的是一个字节序列00,有没有空行需要这个00的编码?
您看到的红色倒问号显然是 NULL / NUL 字符。它是否有任何区别确实取决于应用程序 writing/reading 有问题的文件。 (因此,这很可能不是一般的编码问题。比较:Wikipedia。)
一旦你让隐藏的字符在 TextWrangler 中可见,你可以标记 that/any 字符(或字符序列),并使用 [=19] 将其复制到 Find 输入字段=]CMD + E。 NULL 字符在我的机器上显示为 \x{00}
。
或者,您可以使用 -> Text -> Zap Gremlins... 和(至少)Null (ASCII 0)选中字符,选中替换为代码,并被告知\x00
。在搜索这些字符时,其中任何一个都应该起作用——无论 grep 是否启用。但是,不确定 \s
是否真的应该在 grep 模式下找到它 - 它不在我的机器上。但是 \W
确实 grep 它。
如果需要调整/进一步详细信息,请发表评论。
我有一个文本文件,在 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";
如果我手动删除奇怪的字符,并制作一个新的十六进制转储,我会看到:
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";"
不同的是一个字节序列00,有没有空行需要这个00的编码?
您看到的红色倒问号显然是 NULL / NUL 字符。它是否有任何区别确实取决于应用程序 writing/reading 有问题的文件。 (因此,这很可能不是一般的编码问题。比较:Wikipedia。)
一旦你让隐藏的字符在 TextWrangler 中可见,你可以标记 that/any 字符(或字符序列),并使用 [=19] 将其复制到 Find 输入字段=]CMD + E。 NULL 字符在我的机器上显示为 \x{00}
。
或者,您可以使用 -> Text -> Zap Gremlins... 和(至少)Null (ASCII 0)选中字符,选中替换为代码,并被告知\x00
。在搜索这些字符时,其中任何一个都应该起作用——无论 grep 是否启用。但是,不确定 \s
是否真的应该在 grep 模式下找到它 - 它不在我的机器上。但是 \W
确实 grep 它。
如果需要调整/进一步详细信息,请发表评论。