ฉันค้นหาทุกที่ แต่ไม่พบวิธีส่งคืนเนื้อหาไฟล์ที่ตรงกับคำที่ระบุหรือ regex
cat /tmp/*.txt | grep "strings"
ฉันค้นหาทุกที่ แต่ไม่พบวิธีส่งคืนเนื้อหาไฟล์ที่ตรงกับคำที่ระบุหรือ regex
cat /tmp/*.txt | grep "strings"
คำตอบ:
คุณไม่เพียงหมายถึงgrep
ไฟล์ (s) แทน(เก้อ) cat
ไอเอ็นจีมัน / พวกเขาไปgrep
?
grep strings /tmp/*.txt
อะไรคือสิ่งcat
ที่มันรวม*.txt
ไฟล์ทั้งหมดไว้ใน "ไฟล์ใหญ่" ไฟล์เดียว หากคุณcat
หลายไฟล์grep
ดังนั้นจะเห็นเพียงหนึ่งอินพุตที่ไม่มีชื่อจริงนั่นคือไฟล์ทั้งหมดของคุณรวมเข้าด้วยกันโดยผ่านไปป์ สิ่งนี้จะไม่ทำให้คุณชื่อไฟล์เนื่องจากคุณสร้างทุกอย่างให้เป็นไฟล์ขนาดใหญ่
หากคุณต้องการgrep
ส่งคืนไฟล์ที่ตรงกันเท่านั้นให้ใช้-l
ตัวเลือก:
grep -l strings /tmp/*.txt
\|
(โดยไม่มี-E
ตัวเลือก) หรือ|
(ที่มี-E
ตัวเลือก), ที่อยู่หรือgrep 'foo\|bar'
grep -E 'foo|bar'