查找至少有一个 CR LF 的文件
Find files with at least one CR LF
我在 Linux。我收到了一个混合的文件列表,我忘记事先核实了。我的编辑器 (emacs) 对某些最初具有 CR+LF (\r\n
) (!!) 的文件使用了 LF (\n
)。我意识到这一点为时已晚,我认为这给我带来了麻烦。
我想在我的 cwd 中找到所有包含 至少 一个 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
我在 Linux。我收到了一个混合的文件列表,我忘记事先核实了。我的编辑器 (emacs) 对某些最初具有 CR+LF (\r\n
) (!!) 的文件使用了 LF (\n
)。我意识到这一点为时已晚,我认为这给我带来了麻烦。
我想在我的 cwd 中找到所有包含 至少 一个 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