유닉스에서 파일 이름 목록을 반복합니다.

유닉스에서 파일 이름 목록을 반복합니다.

유닉스 디렉토리에 파일 이름은 같지만 확장자가 다른 파일이 있다고 가정합니다. 예를 들어

abc.001
abc.002
abc.003

n개의 파일이 있을 수 있습니다.

먼저 디렉터리에서 파일을 가져온 다음 각 파일을 반복해야 합니다. 아래 명령을 사용하여 파일을 가져오고 있지만 누구든지 각 파일을 반복하고 각 파일을 읽고 처리하는 방법을 도울 수 있습니다. ?

find "/tmp/files/" -name "abc.*" -type f -exec echo {} \;

답변1

반복하는 이유는 무엇입니까? grep한 번에 여러 파일 매개변수를 허용하므로

grep PATTERN abc.*

작동해야합니다.

파일이 모두 동일한 디렉토리에 있지 않은 경우 find선택적으로 다음을 사용할 수 있습니다.

find /tmp/files -name 'abc.*' -type f -exec grep PATTERN /dev/null {} +

마지막으로 한 번에 최대한 많은 파일을 전달하라고 +지시합니다 . 이는 최소 2개의 파일이 전달되도록 하기 위한 것이므로 일치 하는 모든 파일 이름이 항상 출력됩니다. GNU 의 경우 (aka ) 옵션을 사용할 수 있습니다 .findgrep/dev/nullgrepgrepgrep-H--with-filename

관련 정보