전체 컨텐츠에서 무언가를 검색해야 함
나는 노력하고있다 :
find . | xargs grep word
오류가 발생합니다.
xargs : 종료되지 않은 견적
이것을 달성하는 방법?
답변
xargs
다른 명령이 생성하지 않는 형식으로 입력해야하므로 효과적으로 사용하기가 어렵습니다. 여기서 잘못 된 것은 입력 할 때 이름이 따옴표로 묶어야하는 파일이 있다는 xargs
것입니다 (아마도 포함 '
).
grep 이 재귀 검색을 위해 -r
또는 -R
옵션을 지원하는 경우이를 사용하십시오.
grep -r word .
그렇지 않으면 -exec
기본을 사용하십시오 find
. xargs
파일 이름에 제약이없는 것을 제외 하고는와 동일한 효과를 얻는 일반적인 방법입니다 . 합리적으로 최신 버전을 find
사용하면 보조 명령을 한 번의 호출로 여러 파일을 그룹화 할 수 있습니다. 전달 /dev/null
에 grep
보장하지만 것은 하나의 파일에 호출 할 일 경우에도 각 경기의 앞에 파일 이름이 표시됩니다.
find . -type f -exec grep word /dev/null {} +
이전 버전 find
(이전 시스템 또는 OpenBSD 또는 BusyBox와 같은 축소 유틸리티)에서는 한 번에 하나의 파일에서만 보조 명령을 호출 할 수 있습니다.
find . -type f -exec grep word /dev/null {} \;
일부의 버전 find
과는 xargs
그들이 더 인용이 필요하지 않도록 별도의 파일 이름에 널 문자를 사용하여 제대로 통신 할 수 있도록 확장이있다. 요즘에는 OpenBSD만이이 기능을 가지고 -exec … {} +
있습니다.
find . -type f -print0 | xargs -0 grep word /dev/null
답변
첫 번째 옵션을 의미하는 것 같아
grep recursive, 파일 내 컨텐츠 검색
grep -R "content_to_search" /path/to/directory
재귀, 일치하는 파일 검색
ls -lR | grep "your_search"
답변
GNU 도구 (Linux 태그가 정확하면 수행)가 있으면 일반적인 인용 문제를 사용 -print0
하고 -0
해결할 수 있습니다.
find . -type f -print0 | xargs -0 grep word