打印具有正确头部的文件名称

时间:2017-05-11 17:02:38

标签: bash awk find head

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

1 个答案:

答案 0 :(得分:2)

您可以将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在这个答案下面提供的非常有用的评论。