以下是行尾的验证。只是好奇是什么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:\>