如何打印第一行包含“#!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}' {} \;
我尝试在同一文件中的第一行打印包含 #!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}' {} \;