디렉터리의 파일과 해당 내용을 반복적으로 나열합니다.

디렉터리의 파일과 해당 내용을 반복적으로 나열합니다.

디렉토리의 파일에 저장된 모든 값을 찾으려고 합니다.

할 수는 있지만 cat /some/dir/*그러면 다음과 같은 결과가 나올 것입니다.

1
2
3
4

내가 원하는 것은 다음과 같습니다

/some/dir/file1: 1
/some/dir/file2: 2

내가 할 수 있는 방법이 있나요?

답변1

GNU grep(CEntOS에서 구현됨)와 호환되거나 다음과 호환됩니다.

grep -r '^' /some/dir

정규식은 ^각 줄의 시작 부분에서 일치하므로 모든 줄과 일치합니다. grep일치하는 각 줄 앞에 파일 이름을 추가합니다. -n줄 번호를 포함하는 옵션을 추가할 수도 있습니다 .

POSIX적으로:

find /some/dir -type f -exec grep '^' /dev/null {} +

파일 목록에 요소가 하나만 있는 경우에도 파일 이름이 인쇄 /dev/null되도록 콘텐츠를 추가합니다 .grep

답변2

모든 파일에 한 줄만 포함되어 있는 경우:

find /some/dir -type f -exec awk '{print FILENAME ": " $0}' {} +

그렇지 않으면 파일 이름을 헤더로 사용하여 한 줄을 인쇄합니다.

find /some/dir -type f -exec awk 'FNR<2{print FILENAME ":"}1' {} +

관련 정보