使用正确的头部打印文件名

Print names of files with proper head

我想获取当前目录中的文件名,使文件的第一行等于myWord。我想将 find . -type f 命令与 -exec 选项与 head -1 filename 结合使用,但无济于事。这个问题有一些巧妙的单线解决方案吗?

您可以将 findawk 一起使用:

find . -maxdepth 1 -type f -exec awk '/myWord/{print FILENAME} {nextfile}' {} +

awk 命令将在每个文件的第一行搜索单词 myWord 然后打印该文件名。

或使用gnu sed:

find . -type f -exec sed '/myWord/F;Q' {} \;

非常感谢@chepner 和@123 在这个答案下方提供的非常有用的评论。