grep -v "grep"รับอินพุตบรรทัดต่อบรรทัดและเอาต์พุตเฉพาะบรรทัดที่grepไม่ปรากฏ โดยไม่ต้อง-vก็จะส่งออกเพียงเส้นที่grep ไม่ปรากฏ ดูman grepรายละเอียดที่
ตราบใดที่grepยูทิลิตี้เกี่ยวข้องกับตัวเองมันก็ไม่สำคัญว่ารูปแบบที่grepส่งไปให้มันในขณะที่การโต้แย้งนั้นเหมือนกับชื่อของมัน แต่ในกรณีส่วนใหญ่ที่grep -v grepปรากฏจริงนี่ไม่ใช่เรื่องบังเอิญ
grep -v grep(หรือgrep -v 'grep'หรือgrep -v "grep") มักปรากฏที่ด้านขวาของไพพ์ที่ด้านซ้ายเป็นpsคำสั่ง นั่นเป็นโอกาสที่คุณจะได้เห็นมัน ตัวอย่างเช่นฉันอาจกำลังมองหาโปรแกรมที่มีชื่อพา ธ หรืออาร์กิวเมนต์บรรทัดคำสั่งแนะนำว่าพวกเขาเกี่ยวข้องกับ Xfce:
ek@Io:~$ ps x | grep xfce
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
31901 pts/1 S+ 0:00 grep --color=auto xfce
grepคำสั่งของฉันถูกแสดงในผลลัพธ์ แต่มันไม่ใช่สิ่งที่ฉันกำลังมองหา ฉันกำลังมองหาข้อมูลเกี่ยวกับกระบวนการที่กำลังทำงานอยู่แล้วเมื่อฉันตรวจสอบสิ่งที่กำลังทำงานอยู่ไม่ใช่กระบวนการที่ทำงานเพียงเพราะฉันพยายามตรวจสอบสิ่งที่กำลังทำงานอยู่
วิธีทั่วไปในการลบสิ่งที่ทำให้ไขว้เขวนี้คือการเพิ่มไปป์อื่นในgrep -v grep:
ek@Io:~$ ps x | grep xfce | grep -v grep
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
grepโดยไม่-Fถือว่ารูปแบบของการเป็นนิพจน์ปกติมากกว่าสตริงคงที่ ดังนั้นอีกวิธีหนึ่งคือการเขียนนิพจน์ปกติที่ตรงกับxfceแต่เขียนแตกต่างกัน ตัวอย่างเช่น:
ek@Io:~$ ps x | grep '[x]fce'
2955 ? Ssl 0:10 xfce4-power-manager
2958 ? S 0:00 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
สิ่งนี้ได้ผลเพราะ[x]เป็นคลาสของตัวละครที่ตรงกับตัวอักษรxทั้งหมด
หนึ่งในวิธีการที่ได้รับความนิยมคือการที่จะกรองบรรทัดที่มีgrepแม้ว่าจะไม่ใช่grepคำสั่งที่คุณเพิ่งรันด้วยตัวเอง พวกเขาอาจจะไม่ได้เป็นgrepคำสั่ง - คำสั่งเพียงแค่มีชื่อเส้นทางหรืออาร์กิวเมนต์บรรทัดคำสั่งประกอบด้วย grepดังนั้นเป็นSergiy Kolodyazhnyy มีออกแหลมมักจะไม่มีวิธีการเหล่านั้น (หรือวิธีการอื่นใดที่เกี่ยวข้องกับท่อส่งออกของps) มันเหมาะและเป็นนิคฮาร์ทลี่กล่าวถึง , อื่น ๆ วิธีที่pgrepมักใช้ ตัวอย่างเช่น:
ek@Io:~$ pgrep -af xfce
2955 xfce4-power-manager
2958 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
-a แสดงบรรทัดคำสั่งแบบเต็ม งดเว้นเพื่อแสดงเฉพาะหมายเลขกระบวนการเท่านั้น
-f ค้นหาในบรรทัดคำสั่งแบบเต็ม งดเว้นเพื่อค้นหาเฉพาะชื่อ
man grepอ่านหน้าคู่มืออ้างอิงสำหรับคำสั่งหรือสำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งบางอย่าง (inc. grep) คุณสามารถinfo grep.... เช่น ระบบของคุณมีเอกสารซึ่งมักจะมีประโยชน์มาก