파이프 컬에서 grep으로

파이프 컬에서 grep으로

curl다운로드한 페이지를 화면에 인쇄하는 대신 파이프로 보내는 방법

이것은 작동합니다:

# curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts
# grep 127 txt

하지만 다음은 그렇지 않습니다.

# curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts | grep 127

중간 파일을 사용하지 않고도 작동하도록 할 수 있나요?

답변1

curl파일( )에 쓰지 말라고 지시 -o txt하고 URL을 인용하십시오.

curl -Ss 'https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts' | grep 127

URL의 세미콜론 때문에 시도가 작동하지 않습니다. 세미콜론을 인용하지 않으면 쉘은 이를 명령 종료로 해석합니다. 쉘은 이렇게 실행됩니다

curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0

이어서

hostformat=hosts | grep 127

후자는 hostformat=hosts출력이 없는 유효한 명령이므로 명백한 오류 없이 작동합니다.

인용은 또한 ?문제를 방지합니다(와일드카드입니다).

관련 정보