모든 검색 결과의 내용을 단일 파일에 복사합니다. 검색 결과를 복사하고 싶지 않고 검색 결과의 파일 내용을 복사하고 싶습니다.
예를 들어 내 검색 결과가 10개의 파일 목록을 반환했다면 해당 10개 파일의 내용을 단일 파일(예: )에 복사하고 싶습니다 dump.test
.
답변1
GNU grep
및 xargs
:
grep -rlZ search-text some/dir/ | xargs -r0 cat > dump.test
-l
와 일치하는 행이 하나 이상 포함된 파일을 나열하는 것입니다 search-text
. -Z
에 안전하게 전달될 수 있도록 해당 줄을 NUL로 구분하여 인쇄하는 것입니다 xargs -0
.
-r
내부의 모든 파일을 some/dir/
재귀적으로 검색합니다.
POSIX적으로:
find some/dir -type f -size +0 -exec grep -q search-text {} \;
-exec cat {} + > dump.test
grep
이는 비어 있지 않은 파일당 하나의 명령을 실행한다는 의미이므로 효율성이 떨어집니다 .