53 이 동작을 만들려고합니다. grep 192.168.1 *.txt Xargs를 통해 grep에 문자열을 전달하면 첫 번째 매개 변수 대신 끝납니다. echo 192.168.1 | xargs grep *.txt 들어오는 문자열을 'grep'과 '*'사이에 두지 말고 xargs (또는 이와 유사한 것)에 지시해야합니다. 어떻게해야합니까? xargs — 앤디 부팅 소스 파일을 찾은 다음 xargs를 사용하여 이동하는 방법과 비슷 합니다. . — manatwork
83 $ echo 192.168.1. | xargs -I{} grep {} *.txt 예 샘플 파일 : $ cat {1..3}.txt 192.168.1 192.168.1 192.168.1 예제 실행 : $ echo 192.168.1. | xargs -I{} grep {} *.txt 1.txt:192.168.1. 2.txt:192.168.1. 3.txt:192.168.1. — slm 소스 고마워요. 그런데 왜? -I로 무엇을 대체하고 있습니까? 나는 그것을 얻지 못한다. — e18r 6 중괄호는 자리 표시자인 것 같습니다. echo 192.168.1과 같이 {}을 원하는 것으로 바꿀 수 있습니다. | xargs -I pholder grep pholder * .txt — denormalizer
3 다른 접근법 : find . -name \*.txt -print0 | xargs -0 grep 192.168.1 이렇게하면 파일 이름이 너무 많은 쉘의 명령 행 길이가 오버 플로우되지 않습니다. 혼란을 피하기 위해 xargs/ grep파일 공간을 이름으로 -print0하고 -0널이 아닌 LF로 발견 된 각 이름을 묘사합니다 옵션. — 빌 호 아그 소스