grep โดยไม่แสดงพา ธ / ไฟล์: line


234

คุณ grep และส่งคืนบรรทัดที่ตรงกันได้อย่างไร ie เส้นทาง / ชื่อไฟล์ถูกตัดออกจากผลลัพธ์

ในกรณีนี้ฉันต้องการค้นหาไฟล์. bar ทั้งหมดในไดเรกทอรีปัจจุบันค้นหาคำว่า FOO

find . -name '*.bar' -exec grep -Hn FOO {} \;

คำตอบ:


375

findไม่จำเป็นต้อง หากคุณกำลังมองหารูปแบบภายในไดเรกทอรีที่เฉพาะเจาะจงสิ่งนี้น่าจะพอเพียง:

grep -hn FOO /your/path/*.bar

-hพารามิเตอร์ที่จะซ่อนชื่อไฟล์อยู่ที่ไหนจากman grep:

-h, - ไม่มีชื่อไฟล์

หยุดการนำหน้าชื่อไฟล์บนเอาต์พุต นี่คือค่าเริ่มต้นเมื่อมีไฟล์เดียวเท่านั้น (หรืออินพุตมาตรฐานเท่านั้น) เพื่อค้นหา

โปรดทราบว่าคุณกำลังใช้

-H, - ด้วยชื่อไฟล์

พิมพ์ชื่อไฟล์สำหรับการแข่งขันแต่ละครั้ง นี่คือค่าเริ่มต้นเมื่อมีมากกว่าหนึ่งไฟล์ที่จะค้นหา


สามารถละเว้นหมายเลขบรรทัดได้หรือไม่
javadba

@javadba alias grepคุณอาจจะใช้นามแฝงประเภท หากต้องการละเว้นนามแฝงให้พิมพ์\grep ...
fedorqui 'SO หยุดทำอันตราย'

1
ใช่มันใช้นามแฝง
javadba

8

เพียงแค่เปลี่ยนด้วย-H -hตรวจสอบman grepรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกต่างๆ

find . -name '*.bar' -exec grep -hn FOO {} \;

6

จากหน้าคน:

-h, --no-filename
    Suppress the prefixing of file names on output. This is the default when there
    is only one file (or only standard input) to search.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.