搜索第二行文件并将文件名打印到标准输出

搜索第二行文件并将文件名打印到标准输出

我有几个包含约 10,000 个文件的目录。如果第二行包含特定字符串,搜索每个文件并返回文件名的最快方法是什么?

为了清晰起见进行了编辑

答案1

awk 'FNR==2 {if (/some string/) print FILENAME; nextfile}' ./*

有些 awks 没有“nextfile”。

答案2

我不确定高速但应该也可以

for i in *
do
  {
    IFS= read -r line1 &&
      IFS= read -r line2 &&
      case $line2 in
        *some_string*)
          printf "%s\n" "$i" ;;
      esac
  } < "$i"
done

相关内容