파일의 두 번째 줄을 검색하고 파일 이름을 표준 출력으로 인쇄합니다.

파일의 두 번째 줄을 검색하고 파일 이름을 표준 출력으로 인쇄합니다.

약 10,000개의 파일이 포함된 여러 디렉터리가 있습니다. 두 번째 줄에 특정 문자열이 포함된 경우 모든 파일을 검색하고 파일 이름을 반환하는 가장 빠른 방법은 무엇입니까?

명확성을 위해 편집됨

답변1

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

일부 awk에는 "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

관련 정보