unix 行尾与 windows 行尾

unix 行尾与 windows 行尾

以下是行尾的验证。只是好奇是什么I?我知道M导致问题的原因。谢谢 :)。

cmccabe@DTV-A5211QLM:~/Desktop/bed$ head -10 xgen_targets_unix.bed | cat -et
chr1^I955543^I955763^IAGRN-6|pr=2|gc=75^I0^I+$
chr1^I957571^I957852^IAGRN-7|pr=3|gc=61.2^I0^I+$

与 Windows 行尾相比

cmccabe@DTV-A5211QLM:~/Desktop/bed$ head -10 xgen_targets.bed | cat -et
chr1^I955543^I955763^IAGRN-6|pr=2|gc=75^I0^I+^M$
chr1^I957571^I957852^IAGRN-7|pr=3|gc=61.2^I0^I+^M$

答案1

^M 是 char(13) 又名 \r 而 ^J 是 char(10) 又名 \n。

不过,您往往不会看到 ^J 被列为 ^J。对于 \r\n,它是 ^M^J。有些编辑器可能会让您输入 ^M 和/或 ^J 并进行控制。

并且给定 ascii 表,并且 i 是第 9 个字母,毫无疑问 ^I 是 char(9) - tab

您可以使用 xxd -p 清楚地看到字符,但我们也会尝试您的命令 cat -et

我们看到,当 cat -et 显示 $ 时,它表示 \n 所以 ^M$ 是 \r\n

C:\>echo abc>a.a

C:\>cat a.a | xxd -p
6162630d0a

C:\>cat a.a -et
abc^M$

C:\>dos2unix a.a
Dos2Unix: Processing file a.a ...

C:\>cat a.a -et
abc$

C:\>

相关内容