เมื่อฉันพิมพ์ "หมอ grep" ใน terminal มันก็ไม่ได้ทำอะไรหยุดขั้วจากการทำอะไรอย่างอื่นก่อนที่จะหลบหนีโดยใช้Ctrl+ หรือCZ
ฉันรู้ว่านี่ไม่ใช่วิธีที่ฉันควรใช้ grep แต่แค่อยากรู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น
เมื่อฉันพิมพ์ "หมอ grep" ใน terminal มันก็ไม่ได้ทำอะไรหยุดขั้วจากการทำอะไรอย่างอื่นก่อนที่จะหลบหนีโดยใช้Ctrl+ หรือCZ
ฉันรู้ว่านี่ไม่ใช่วิธีที่ฉันควรใช้ grep แต่แค่อยากรู้ว่าทำไมสิ่งนี้ถึงเกิดขึ้น
คำตอบ:
grep
โดยค่าเริ่มต้นค้นหาอินพุตมาตรฐานหากไม่มีไฟล์:
grep ค้นหาไฟล์อินพุตที่ระบุชื่อ (หรืออินพุตมาตรฐานหากไม่มีไฟล์ชื่อหรือหากมีเครื่องหมายยัติภังค์ลบ (-) เดียวเป็นชื่อไฟล์) สำหรับบรรทัดที่มีการจับคู่กับรูปแบบที่กำหนด โดยค่าเริ่มต้น grep จะพิมพ์บรรทัดที่ตรงกัน
หากคุณเพียงแค่grep doc
grep คาดว่าอินพุตมาตรฐานมาและค้นหาข้างใน (อย่าป้อนชิ้นส่วนระหว่าง<
และ>
เข้าไปในเทอร์มินัลนี่คือความคิดเห็น):
$ grep doc
a b c <PRESS ENTER HERE>
doc <NO MATCH WAS FOUND IN PREVIOUS LINE, TYPE doc AND PRESS ENTER AGAIN>
doc <MATCH WAS FOUND>
grep '([a-z]+[0-9]*.x){2,3}'
และพิมพ์บรรทัดตัวอย่างจำนวนมากบนแป้นพิมพ์เพื่อให้แน่ใจว่าตรงกับสิ่งที่คุณคิด เส้นที่ตรงกันจะได้รับการสะท้อนเส้นที่ไม่ได้จะไม่
somecommand | grep foo
grep
กำลังรอการป้อนข้อมูล
จากman grep
:
[...]
DESCRIPTION
grep searches the named input FILEs (or standard input if no files are named
[...]