如何在当前目录中的所有文件中 grep 查找给定字符串,并递归地仅考虑第一行? (#! 行,如果存在,但前提是 #! 位于第一行)?
答案1
如果您不被迫使用 grep:
find . -type f -exec \
awk 'FNR==1 && /GIVEN_STRING/ { print FILENAME ": " $0; }; FNR>1 {nextfile}' {} +
这会导致 CPU 负载大大减少,因为一个进程(或极少数)可以完成所有工作。
答案2
尝试这样做:
find . -type f -exec head -1 {} \; | grep "GIVEN_STRING"