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
.... เช่น ระบบของคุณมีเอกสารซึ่งมักจะมีประโยชน์มาก