0

我试着用

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)

4

2 回答 2

0

^(asdasd|qwdq|qwdad)仅正则表达式您要查找的部分或 ^(asdasd|qwdq|qwdad).*正则表达式整行

于 2016-06-30T09:31:12.893 回答
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}' {} \;
于 2016-06-30T09:36:47.913 回答