关于bash:如何在Linux上使用grep搜索包含dos行结尾(CRLF)的文件?

关于bash:如何在Linux上使用grep搜索包含dos行结尾(CRLF)的文件?

How do you search for files containing dos line endings (CRLF) with grep on Linux?

我想在Linux上用grep搜索包含DOS行尾的文件。像这样:

1
2
3
grep -IUr --color '

'
.

上面的内容似乎与文字rn相匹配,这不是我们想要的。

它的输出将通过xargs管道传输到todos中,以便像这样将crlf转换为lf

1
grep -IUrl --color '^M' . | xargs -ifile fromdos 'file'

grep的可能并不是你想要的,这把椅子的方法。它将打印一行的每一行中的每一个文件的匹配方法。除非你想说的,是一个时代的运行Todos 10 10行的文件,最好的方式不是t grep去讨论它。使用find file文件是对每一个运行在树grepping通",然后你会得到的CRLF"的方法对输出的每一行的中心线endings DOS风格的文件,有: </P >

1
find . -not -type d -exec file"{}"";" | grep CRLF

你会得到某样: </P >

1
2
3
./1/dos1.txt: ASCII text, with CRLF line terminators
./2/dos2.txt: ASCII text, with CRLF line terminators
./dos.txt: ASCII text, with CRLF line terminators

使用v ctrl + + Enter to a,ctrl m literal grep字符串返回字符为你的道路。SO: </P >

1
grep -IUr --color"^M"

将工作,如果有,那是一个^Mliteral CR I suggested作为你的输入。 </P >

如果你想在文件列表,选择你想添加的-l为好。 </P >

解释 </P >

  • -I二进制文件的错误
  • -Uprevents grep对带钢的Cr的特点。它将默认decides做它如果它这是一个文本文件。
  • 在每个目录下的文件的行-r递归的方法。


1
2
grep -IUlr $'
'

explainshell.com - grep - iulr </P >


如果你的grep版本所支持的P(——Perl -选项,那么RegExp) </P >

1
2
grep -lUP '
$'

可以被应用。 </P >


1
2
3
4
5
6
7
8
9
# list files containing dos line endings (CRLF)

cr="$(printf"
")"    # alternative to ctrl-V ctrl-M

grep -Ilsr"${cr}$" .

grep -Ilsr $'
$'
.   # yet another & even shorter alternative

搜索查询的是…………………我有一个相似的问题…………………有人submitted混合线 endings成的版本控制,所以现在我们有一个与0x0d波茨of files 0x0d0x0aendings线。值得注意的是 </P >

1
grep -P '\x0d\x0a'

finds系下,whereas </P >

1
grep -P '\x0d\x0d\x0a'

和 </P >

1
grep -P '\x0d\x0d'

好的,所以有可能是finds系的某"征服"的情况是在grep 当它comes到网上ending型…………………我们的方法unfortunately!!!!!!! </P >


你可以使用file命令行中的一个。它让你的字符编码的文件与terminators along线。 </P >

1
2
3
4
$ file myfile
myfile: ISO-8859 text, with CRLF line terminators
$ file myfile | grep -ow CRLF
CRLF

如果你喜欢,我们没有一个T,minimalist include文件niceties状的命令和grep的反斜杠,在你的表达式是不cooperate,尝试这个: </P >

1
2
3
4
$ for file in `find . -type f` ; do
> dump $file | cut -c9-50 | egrep -m1 -q ' 0d| 0d'
> if [ $? -eq 0 ] ; then echo $file ; fi
> done

你可能想modifications化妆师对在include: </P >

  • find命令的locate微调到只在你想扫描文件
  • 相变的dump命令对OD或什么你要utility dump文件
  • confirm的命令包括一切都是领先和落后的空间作为富裕的十六进制字符输出作为刚刚从《utility dump
  • 限制式输出到第一个1000字元或SO方法的效率

for example,这可能为你工作的某样instead系式:用OD </P >

1
 od -t x2 -N 1000 $file | cut -c8- | egrep -m1 -q ' 0d| 0d|0d$'

推荐阅读

    linux文件异或命令?

    linux文件异或命令?,数字,系统,工作,管理,命令,数据,网络,文件,第一,单位,基

    linux文件复制的命令?

    linux文件复制的命令?,系统,文件,命令,目录,源文件,基本知识,位置,目标,选

    linux写文件命令行?

    linux写文件命令行?,工作,系统,命令,信息,名字,文件,目录,资料,标准,时间,lin

    linux复制命令文件?

    linux复制命令文件?,系统,文件,命令,目录,基本知识,源文件,目标,文件夹,路

    linux下文件均分命令?

    linux下文件均分命令?,管理,情况,系统,工作,信息,地址,命令,目录,单位,设备,L

    linux的文件替换命令?

    linux的文件替换命令?,系统,工作,实时,命令,文件,批量,字符串,内容,方法,表

    linux查文件数量命令?

    linux查文件数量命令?,系统,数据,电脑,命令,文件,信息,代码,对比,软件,第三,l

    linux命令去重文件?

    linux命令去重文件?,系统,工作,命令,信息,数据,环境,代码,文件,目录,操作,Lin

    linux写大文件命令?

    linux写大文件命令?,服务,数据,第三,较大,基础,工具,设备,文件,大小,命令,lin

    linux查询文件夹命令?

    linux查询文件夹命令?,系统,软件,电脑,命令,文件,文件夹,单位,第三,档案,数

    linux多文件打包命令?

    linux多文件打包命令?,系统,工具,时间,代码,文件,命令,文件夹,目录,指令,格

    linux命令的头文件?

    linux命令的头文件?,系统,单位,信息,代码,情况,位置,时报,项目,百度,命令,lin

    linux匹配文件名命令?

    linux匹配文件名命令?,系统,时间,发行,位置,工具,软件,名称,盘后,电脑,盘中,l

    linux上编辑文件命令?

    linux上编辑文件命令?,系统,信息,工作,状态,命令,文件,标准,检测,工具,设备,L

    linux命令搜索命令行?

    linux命令搜索命令行?,工作,系统,地址,信息,命令,目录,基础,工具,管理,功能,l

    改文件名linux命令?

    改文件名linux命令?,名字,软件,文件,命令,位置,系统,文件名,目录,指令,方面,l

    linux命令文件加锁?

    linux命令文件加锁?,数据,密码,系统,设备,代码,地址,名单,信息,数字,统一,请

    linux拼接文件命令?

    linux拼接文件命令?,文件,数据,命令,代码,时间,信息,系统,情况,管理,标准,Lin

    linux文件常用命令?

    linux文件常用命令?,工作,地址,信息,系统,命令,目录,标准,情况,管理,常用命

    文件写入linux命令?

    文件写入linux命令?,文件,命令,状态,系统,名称,时间,首次,数据,数字,内容,在l