我在Linux上。我收到了一份混合的文件列表,我忘记事先核实这些文件。我的编辑器(emacs)使用LF(\n
)来处理一些最初有CR + LF(\r\n
)(!!)的文件。我已经意识到这种方式太晚了,我认为这给我带来了麻烦。
我想在我的cwd中找到至少一个CR + LF的所有文件。我不相信file
命令,因为我认为它只检查第一行,而不是整个文件。
我希望检查整个文件以查找CR + LF 。有没有这方面的工具,还是我需要自己动手?
答案 0 :(得分:2)
您可以使用此grep
命令列出目录中至少有一个CR-LF
的所有文件:
grep -l $'\r$' *
模式$'\r$'
将在每行结束前提交\r
。
或使用十六进制值:
grep -l $'\x0D$' *
\x0D
会找到\r
(ASCII:13)。
答案 1 :(得分:0)
dos2unix不仅可以将dos行结束(CR + LF)转换为unis(LF),还可以使用-i选项显示文件信息。 e.g。
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