ฉันค้นหาทุกที่ แต่ไม่พบวิธีส่งคืนเนื้อหาไฟล์ที่ตรงกับคำที่ระบุหรือ 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'