คุณ grep และส่งคืนบรรทัดที่ตรงกันได้อย่างไร ie เส้นทาง / ชื่อไฟล์ถูกตัดออกจากผลลัพธ์
ในกรณีนี้ฉันต้องการค้นหาไฟล์. bar ทั้งหมดในไดเรกทอรีปัจจุบันค้นหาคำว่า FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
คุณ grep และส่งคืนบรรทัดที่ตรงกันได้อย่างไร ie เส้นทาง / ชื่อไฟล์ถูกตัดออกจากผลลัพธ์
ในกรณีนี้ฉันต้องการค้นหาไฟล์. bar ทั้งหมดในไดเรกทอรีปัจจุบันค้นหาคำว่า FOO
find . -name '*.bar' -exec grep -Hn FOO {} \;
คำตอบ:
find
ไม่จำเป็นต้อง หากคุณกำลังมองหารูปแบบภายในไดเรกทอรีที่เฉพาะเจาะจงสิ่งนี้น่าจะพอเพียง:
grep -hn FOO /your/path/*.bar
-h
พารามิเตอร์ที่จะซ่อนชื่อไฟล์อยู่ที่ไหนจากman grep
:
-h, - ไม่มีชื่อไฟล์
หยุดการนำหน้าชื่อไฟล์บนเอาต์พุต นี่คือค่าเริ่มต้นเมื่อมีไฟล์เดียวเท่านั้น (หรืออินพุตมาตรฐานเท่านั้น) เพื่อค้นหา
โปรดทราบว่าคุณกำลังใช้
-H, - ด้วยชื่อไฟล์
พิมพ์ชื่อไฟล์สำหรับการแข่งขันแต่ละครั้ง นี่คือค่าเริ่มต้นเมื่อมีมากกว่าหนึ่งไฟล์ที่จะค้นหา
alias grep
คุณอาจจะใช้นามแฝงประเภท หากต้องการละเว้นนามแฝงให้พิมพ์\grep ...
เพียงแค่เปลี่ยนด้วย-H
-h
ตรวจสอบman grep
รายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกต่างๆ
find . -name '*.bar' -exec grep -hn FOO {} \;
จากหน้าคน:
-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.