如何打印第一行包含“#!bin/bash”的文件名

How to print the name of the files that contains "#!bin/bash" on the first line

我尝试在同一文件中的第一行打印包含 #!bin/bash 的文件名(扩展名无关紧要)。

我这样做允许我在文件的任何地方打印包含:#!bin/bash 的文件的名称,但我只需要在第一行打印包含此链的文件的名称.

这是我所做的:

find . -type f -name - grep -L '#!bin/bash' {} \; -printf '%f\n'> file.txt

为此使用 awk 怎么样?

awk 'NR==1 && ([=10=] == "#!bin/bash") {print FILENAME} {exit}' file

检查第一行是否有这个内容。如果是这样,它会打印文件名。然后,不管之前发生了什么,它都会退出文件,因为它不再需要处理它了。

使用find将文件提供给awk命令,只需说find /your/path -exec awk '...' {} \;如:

find -type f -exec awk 'NR==1 && ([=11=] == "#!bin/bash") {print FILENAME} {exit}' {} \;