경로에 특정 폴더가 있는 파일에서 텍스트를 검색한 다음 일치하는 줄과 파일 권한을 표시합니다.

경로에 특정 폴더가 있는 파일에서 텍스트를 검색한 다음 일치하는 줄과 파일 권한을 표시합니다.

경로에 특정 폴더(예: 구성)가 있고 특정 텍스트(예: 호스트 이름)가 있는 모든 *.config 파일을 찾습니다. 그러면 일치하는 줄이 파일 권한과 함께 표시됩니다.

이제 아래 명령은 경로에 "config" 폴더가 있고 "hostname" 텍스트와 파일 권한이 있는 모든 구성 파일을 제공합니다.

ls -la `find / -type f -name "*.config" -exec grep -li 'hostname' {} + | grep config`

샘플 출력

-rw-r--r-- 1 user users  2240 Jan 17  2014 /home/config/1.config
-rw-r--r-- 1 user users  2146 Aug  2  2013 /home/test/config/abc.config

이러한 파일에는 "호스트 이름"이라는 텍스트가 포함되어 있습니다. 이제 "호스트 이름" 일치가 발생한 행도 보고 싶습니다. Bash 스크립팅 없이 이를 수행할 수 있는 방법이 있습니까?

답변1

find명령 옵션을 사용하십시오 .

find -type f -path "*/config/*.config" -exec grep 'hostname' {} \;  -ls

  • -path <pattern>- 파일 이름이 쉘 패턴과 일치합니다.<pattern>

  • -ls- ls -dils현재 파일을 표준 출력 형식으로 나열합니다.

관련 정보