ละเว้นชื่อไฟล์ใน grep


18

ฉันกำลัง greping สตริงจากหลาย ๆ ไฟล์ แต่หนึ่งในผลข้างเคียงที่ไม่พึงประสงค์คือชื่อไฟล์ prefacing เอาท์พุท ฉันจะระงับเอาต์พุตชื่อไฟล์โดยใช้ grep เท่านั้นได้อย่างไร

  $ grep -i lp lpNet* 
    lpNet:This was printed via the internet using the lp command.
    lpNet:I believe lp doesnt care what the device is. 
    lpNet1:This was printed via the internet using the lp command.
    lpNet1:I believe lp doesnt care what the device is. 
    lpNet2:This was printed via the internet using the lp command.
    lpNet2:I believe lp doesnt care what the device is. 
    lpNet3:This was printed via the internet using the lp command.
    lpNet3:I believe lp doesnt care what the device is. 

ฉันแก้ไขปัญหาสำหรับตอนนี้โดยใช้ cat lpNet * | grep lp ฉันแค่สงสัยว่ามีเส้นทางที่มีประสิทธิภาพมากกว่าที่จะมีผลเหมือนกันหรือไม่

คำตอบ:


31

พฤติกรรมเริ่มต้นคือการพิมพ์ชื่อไฟล์เมื่อได้รับข้อโต้แย้งหลายไฟล์ - เพื่อระงับสิ่งนี้คุณสามารถเพิ่ม-hตัวเลือกหรือ - ไม่มีชื่อไฟล์

จากOutput Line Prefix Controlส่วนของหน้า grep manual:

   -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.