모든 검색 결과의 내용을 파일에 복사합니다. 검색결과를 복사하고 싶지 않고, 검색결과의 파일 내용을 복사하고 싶습니다.
예를 들어, 내 검색 결과는 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
비어 있지 않은 각 파일에 대해 하나의 명령을 실행한다는 의미이므로 효율성이 떨어집니다.