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

How to find files with text started with

我尝试使用

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)

^(asdasd|qwdq|qwdad) 仅正则表达式你想找到的部分 要么 ^(asdasd|qwdq|qwdad).* 到正则表达式整行

使用 awk 你可以检查第一行是否匹配任何说法:

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

如果你想打印它的文件名,那么说:

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

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

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