여러 파일의 내용(파일 이름이 앞에 붙음)을 출력하는 방법은 무엇입니까?

여러 파일의 내용(파일 이름이 앞에 붙음)을 출력하는 방법은 무엇입니까?

나는 다음과 같은 명령을 찾고 있습니다

find -name "*clang*" -exec cat {} \;

또는

cat $(find -name "*clang*")

하지만 각 파일의 내용 앞에 파일 경로를 알려주십시오.

답변1

이는 실행당 하나의 awk만 생성된다는 장점이 있습니다.

find . -type f -name '*clang*' -exec awk 'FNR==1{print FILENAME}1' {} +

awk 본문의 의미:

  • FNR==1{print FILENAME}: 발견된 각 파일의 첫 번째 줄에 대해 해당 경로를 인쇄합니다.
  • 1: 각 줄마다 인쇄합니다.

답변2

다음 명령을 시도해 보십시오:

find / -name "*clang*" -exec basename {} \; -exec cat {} \;

답변3

나는 이것이 실제로 생각보다 간단하다는 것을 알았습니다.

find -name "*clang*" -print -exec cat {} \;

관련 정보