ฉันต้องการค้นหาไฟล์ทั้งหมดซ้ำจากไดเรกทอรีที่ฉันอยู่ในสตริงเฉพาะ
ฉันเหนื่อย
grep -r -i my_string
และฉันลองในโฟลเดอร์ทดสอบที่มีไฟล์เล็ก ๆ สองไฟล์ แต่ไม่พบสตริง
นอกจากนี้ยังมีวิธีพิเศษในการกำหนด "บรรจุ" แทนที่จะจับคู่คำทั้งหมดหรือไม่
ฉันต้องการค้นหาไฟล์ทั้งหมดซ้ำจากไดเรกทอรีที่ฉันอยู่ในสตริงเฉพาะ
ฉันเหนื่อย
grep -r -i my_string
และฉันลองในโฟลเดอร์ทดสอบที่มีไฟล์เล็ก ๆ สองไฟล์ แต่ไม่พบสตริง
นอกจากนี้ยังมีวิธีพิเศษในการกำหนด "บรรจุ" แทนที่จะจับคู่คำทั้งหมดหรือไม่
คำตอบ:
คุณกำลังค้นหาชื่อไฟล์หรือคำในไฟล์หรือไม่? grep ค้นหาในไฟล์ซึ่งน่าจะเป็นสิ่งที่คุณต้องการ
grep ใช้นิพจน์ทั่วไป - อันที่จริงนั่นคือส่วนที่ "re" หมายถึง ดังนั้นจึงไม่ใช้ wildcard bash ปกติ นั่นคือabc*
จะไม่พบคำที่ขึ้นต้นด้วย abc มันจะค้นหาคำที่ขึ้นต้นด้วย ab แล้วตามด้วยศูนย์หรือมากกว่านั้น แต่ใช่ถ้าคุณให้แบบอย่างมันจะหาได้ทุกที่โดยไม่มีความรู้ทั้งคำ หากคุณต้องการค้นหาคำทั้งหมดคุณจะต้องสร้างการแสดงออกปกติเพื่อบอกว่า
แต่เช่นเดียวกับคำสั่งส่วนใหญ่คุณจะต้องใส่ชื่อไฟล์ที่ส่วนท้ายของคำสั่งดังนั้นตัวอย่างของคุณก็แค่นั่งตรงนั้นแล้วรอชื่อไฟล์
ตามที่ @ link ใช้
grep -r -o -i "your_string" *
(หรือ*.*
, หรือ filespec อื่น ๆ ) ข้อผิดพลาดสามารถถูกละเว้น หากคุณได้รับข้อผิดพลาดจำนวนมากคุณสามารถผนวก2>/dev/null
ท้ายซึ่งจะเปลี่ยนเส้นทาง stderr ไปยังอุปกรณ์ null
grep -r -o -i "your_string" *
(ด้วย "คำพูด).