
전체 콘텐츠에서 무언가를 검색해야 함
노력하고있어:
find . | xargs grep word
오류가 발생합니다.
xargs: 끝나지 않은 인용문
이 목표를 달성하는 방법은 무엇입니까?
답변1
xargs
다른 명령이 생성할 수 없는 형식의 입력이 필요하므로 효율적으로 사용하기 어렵습니다. 여기서 문제는 입력 시 이름을 인용해야 하는 파일이 있다는 것입니다 xargs
(포함될 수도 있음 '
).
grep이 재귀 검색을 지원 -r
하거나 옵션을 제공하는 경우 이를 사용하십시오.-R
grep -r word .
그렇지 않으면 -exec
주요 부분을 사용하십시오 find
. 이는 동일한 효과를 얻을 수 있는 일반적인 방법이지만 xargs
파일 이름에는 제한이 없습니다. 비교적 최신 버전을 사용하면 find
도우미 명령을 한 번 호출하여 여러 파일을 그룹화할 수 있습니다. /dev/null
to를 전달하면 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
답변2
첫 번째 옵션을 의미하는 것 같아요
grep은 재귀적으로 파일 내용을 검색하는 데 사용됩니다.
grep -R "content_to_search" /path/to/directory
ls 재귀, 일치하는 파일을 검색하는 데 사용됨
ls -lR | grep "your_search"
답변3
GNU 도구(Linux 태그가 정확할 경우 가능)가 있는 경우 일반적인 인용 문제를 사용하여 해결할 -print0
수 있습니다.-0
find . -type f -print0 | xargs -0 grep word
답변4
현재 디렉터리에서 grep을 사용할 수 있습니다.
grep -irl root .