我在Linux上。 我收到了一些混杂的文件清单,我已经事先忘记了。 我的编辑器(emacs)已经使用了LF( \n
)来处理一些最初有CR + LF( \r\n
)(!!)的文件。 我已经意识到这种方式太晚了,我认为这给我带来了麻烦。
我想find所有在我的cwd 至less有一个CR + LF在其中的文件。 我不信任file
命令,因为我认为它只检查第一行,而不是整个文件。
我想检查整个文件来寻找CR + LF 。 有没有一个工具,或者我需要推出自己的?
您可以使用此grep
命令列出至少有一个CR-LF
的目录中的所有文件:
grep -l $'\r$' *
模式$'\r$'
将在每行结束之前记录\r
。
或者使用十六进制值:
grep -l $'\x0D$' *
\x0D
将会找到\r
(ASCII:13)。
dos2unix不仅可以将dos的行结束符(CR + LF)转换为unis(LF),还可以用-i选项显示文件信息。 例如
sh-4.3$ (echo "1" ; echo "") > 123.txt sh-4.3$ unix2dos 123.txt unix2dos: converting file 123.txt to DOS format... sh-4.3$ cat 123.txt ; hexdump -C 123.txt ; dos2unix --info='du' 123.txt 1 00000000 31 0d 0a 0d 0a |1....| 00000005 2 0 123.txt sh-4.3$ dos2unix 123.txt dos2unix: converting file 123.txt to Unix format... sh-4.3$ cat 123.txt ; hexdump -C 123.txt ; dos2unix --info='du' 123.txt 1 00000000 31 0a 0a |1..| 00000003 0 2 123.txt