如何查找以文本开头的文件

时间:2016-06-30 09:25:28

标签: regex linux grep find pcregrep

我尝试使用

find ./ -type f -name '*.php' -exec grep -slE '^asdasd' {} \;

find ./ -type f -name '*.php' -exec pcregrep -l '^asdasd' {} \;

但是这个命令找到了文件,其中'asdasd'在行的开头,而不是所有文本,例如:

文件内容:

qweqwe

asdasd

czczc

我想查找仅包含此文件内容的文件:

asdasd

qwdq

qwdad

(所有文字开头的asdasd)

2 个答案:

答案 0 :(得分:0)

^(asdasd|qwdq|qwdad)只能复制您想要找到的部分 要么 ^(asdasd|qwdq|qwdad).*正则表示全行

答案 1 :(得分:0)

使用awk,您可以检查第一行是否符合以下任何说法:

awk 'NR==1 && /pattern/' file

如果要打印其文件名,请说:

awk 'NR==1 && /pattern/ {print FILENAME}'

要将其与find合并,并检查第一行是否以" asdasd"开头,请使用:

find -type f -exec awk 'NR==1 && /^asdasd/ {print FILENAME}' {} \;