Print names of files with proper head

為{幸葍}努か 提交于 2019-12-02 10:53:07

问题


I want to get the name of files in current directory such that the first line of the file is equal to myWord. I wanted to combine find . -type f command with -exec option with head -1 filename but to no avail. Is there some clever, one-line solution to this problem?


回答1:


You can use find with awk:

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

awk command will search first line of each file for the word myWord then it prints that filename.

Or using gnu sed:

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

Many thanks to @chepner and @123 for extremely helpful comments below this answer.



来源:https://stackoverflow.com/questions/43921644/print-names-of-files-with-proper-head

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!