Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash:获取第一行与字符串模式匹配的文件名_Bash_Find - Fatal编程技术网

bash:获取第一行与字符串模式匹配的文件名

bash:获取第一行与字符串模式匹配的文件名,bash,find,Bash,Find,如何找到第一行与特定字符串匹配的文件名 到目前为止,我已经想出了 find-类型f-exec grep-l“MAGIC_WORD”{} 但是它会在文件的所有行中搜索MAGIC\u WORD,而我只会在第一行搜索具有该模式的文件 我可能应该以某种方式使用head-1,但不知道如何将其与find-exec混合并返回正确的文件名这听起来很疯狂,因为你想读取机器上的每个文件 for filename in "$(find . -type f)" do line=$(head -n 1 "$file

如何找到第一行与特定字符串匹配的文件名

到目前为止,我已经想出了

find-类型f-exec grep-l“MAGIC_WORD”{}

但是它会在文件的所有行中搜索
MAGIC\u WORD
,而我只会在第一行搜索具有该模式的文件


我可能应该以某种方式使用
head-1
,但不知道如何将其与
find-exec
混合并返回正确的文件名这听起来很疯狂,因为你想读取机器上的每个文件

for filename in "$(find . -type f)"
do
   line=$(head -n 1 "$filename")
   if grep -q "MAGIC WORD" <<< "$line"
   then
      printf "$filename"
   fi
done
“$”中文件名的
(查找。-type f)”
做
行=$(头-n 1“$filename”)
如果grep-q“神奇的单词”