hexdump在Cygwin下将CRLF转换为LF
当使用Cygwin/bash下的hexdump在Cygwin下将CRLF转换为LF,cygwin,line-endings,Cygwin,Line Endings,当使用Cygwin/bash下的hextump转储具有Windows行结尾(CRLF)的文本文件内容时,hextump似乎将该文件作为文本文件打开,并将行结尾从Windows(CRLF)转换为UNIX(LF),从而导致转储不正确 我正在Windows 7上运行Cygwin x86_64下运行bash 4.3.42: mgd@mgd-win7vm /cygdrive/c/tmp $ bash --version GNU bash, version 4.3.42(4)-release (x86_64
hextump
转储具有Windows行结尾(CRLF)的文本文件内容时,hextump
似乎将该文件作为文本文件打开,并将行结尾从Windows(CRLF)转换为UNIX(LF),从而导致转储不正确
我正在Windows 7上运行Cygwin x86_64下运行bash 4.3.42:
mgd@mgd-win7vm /cygdrive/c/tmp
$ bash --version
GNU bash, version 4.3.42(4)-release (x86_64-unknown-cygwin)
...snip...
C:
作为“文本”安装在/cygdrive/C
上:
mgd@mgd-win7vm /cygdrive/c/tmp
$ mount
C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin on / type ntfs (binary,auto)
C: on /cygdrive/c type ntfs (text,posix=0,user,noumount,auto)
现在,我们创建一个文本文件,其中有一行:
mgd@mgd-win7vm /cygdrive/c/tmp
$ echo "Hello" > textfile
该文件的长度为预期的7字节(“Hello”+CR+LF):
当我们使用od
转储它时,我们得到了正确的输出:
mgd@mgd-win7vm /cygdrive/c/tmp
$ od -ctx1 textfile
0000000 H e l l o \r \n
48 65 6c 6c 6f 0d 0a
0000007
但是,当使用hextump
CR+LF时,会将其转换为LF:
mgd@mgd-win7vm /cygdrive/c/tmp
$ hexdump -C textfile
00000000 48 65 6c 6c 6f 0a |Hello.|
00000006
这是虫子吗
有没有办法强制hextump
以二进制模式打开文件
mgd@mgd-win7vm /cygdrive/c/tmp
$ hexdump -C textfile
00000000 48 65 6c 6c 6f 0a |Hello.|
00000006