ฉันมี URL ของหน้า html และฉันต้องการ grep มัน ฉันจะทำโดยได้wget someArgs | grep keyword
อย่างไร
ความคิดแรกของฉันคือwget -q -O - url | grep keyword
แต่เอาท์พุทของ wget ข้าม grep และเกิดขึ้นในอาคารในรูปแบบเดิม
ฉันมี URL ของหน้า html และฉันต้องการ grep มัน ฉันจะทำโดยได้wget someArgs | grep keyword
อย่างไร
ความคิดแรกของฉันคือwget -q -O - url | grep keyword
แต่เอาท์พุทของ wget ข้าม grep และเกิดขึ้นในอาคารในรูปแบบเดิม
คำตอบ:
วิธีที่ง่ายที่สุดคือใช้curl
กับตัวเลือก-s
สำหรับปิดเสียง:
curl -s http://somepage.com | grep whatever
curl
http://superuser.com/questions/431581
ด้วยเหตุผลใดก็ตามที่ฉันทดสอบด้วย URL นี้โดยเฉพาะและไม่มีผลลัพธ์ Dunno สิ่งที่ฉันหายไป
-L
สวิตช์
รักษาสิ่งนี้ไว้รอบ ๆ เพื่อความสมบูรณ์
ตัวอย่างของคุณควรใช้งานได้จริง รูปแบบถูกต้องและนี่คือภาพหน้าจอที่ฉันเพิ่งแสดงให้เห็นโดยมี GNU แบบเก่าที่ดีwget
1.13.4
wget -q some-url -O - | grep something
ดังนั้นรูปแบบของคุณถือว่าเป็นสิ่งที่ผิดและgrep
จะส่งออกทุกอย่างมันก็เป็นเพียงแค่
-q
ไม่มีข้อผิดพลาด
จุดบกพร่องนี้อยู่ใน v1.12.1 แก้ไขในรุ่นอื่น ขณะนี้ฉันใช้ v1.15 และทำงานได้ตามที่คาดไว้
หากคุณต้องการที่จะ grep หรือส่วนหัวของท่อพวกเขาเป็นมาตรฐานโดยตรงเพื่อ stderr ดังนั้นคุณต้องเปลี่ยนพวกเขา เช่น:
wget -O - http://example.com/page.php > /dev/null 2>&1 | grep HTTP
การwget
เขียนผลลัพธ์ที่จะstderr
ไม่ไปstdout
ดังนั้นหนึ่งต้องเปลี่ยนเส้นทางstderr
ไปที่stdout
:
wget -q -O - url 2&>1 | grep keyword