디렉토리의 파일에 저장된 모든 값을 찾으려고 합니다.
할 수는 있지만 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' {} +