grep -v "grep"
girişi satır satır alır ve yalnızca grep
görünmeyen satırları çıkarır. Olmadan -v
, bu çıkış sadece çizgiler hangi olurdu grep
gelmez görünür. Ayrıntılar man grep
için bakınız.
Bildiğim kadarıyla grep
yarar kendisi söz konusu olduğunda, desen o en önemsiz olduğunu grep
bir argüman olarak kendisine geçirilen onun adıyla aynıdır. Ancak grep -v grep
gerçekte ortaya çıkan çoğu durumda , bu bir tesadüf değildir.
grep -v grep
(veya grep -v 'grep'
veya grep -v "grep"
) genellikle sol tarafı bir komut olan bir borunun sağ tarafında görünür ps
. Muhtemelen gördüğünüz yer burasıdır. Örneğin, adları, yolları veya komut satırı bağımsız değişkenleri Xfce ile ilişkili olduklarını öneren programları çalıştırabilirim:
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
Komutum grep
çıktıda gösterildi, ama aradığım şey bu değil. Ben, çalışan ne sadece çalışıyor değil süreci incelendiğinde zaten çalışmakta olan süreçler hakkında bilgi arıyorum çünkü çalışan ne incelemek için benim çaba.
Bu dikkat dağıtıcı öğeyi kaldırmanın yaygın bir yolu, başka bir boru eklemektir 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
olmadan -F
desenine sabit bir dize yerine normal bir ifade gibi davranır . Bu yüzden başka bir yaklaşım, tam olarak eşleşen ancak farklı yazılmış düzenli bir ifade yazmaktır . Örneğin: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
Çünkü bu harfle tam olarak eşleşen [x]
bir karakter sınıfıdırx
.
Bu popüler yöntemlerin bir eksikliği, kendiniz çalıştırdığınız komut grep
olmasa bile içeren satırları filtreleyecek olmalarıdır grep
. Hatta olmayabilir grep
adları, yollar veya komut satırı argümanları sadece komutlar - içerirler grep
. Yani, Sergiy Kolodyazhnyy'nin belirttiği gibi , çoğu zaman bu yollardan hiçbiri (ya da çıktının borulanmasını içeren başka bir yaklaşım ps
) gerçekten idealdir ve Nic Hartley'nin belirttiği gibi , diğer yollar sıklıkla kullanır pgrep
. Örneğin:
ek@Io:~$ pgrep -af xfce
2955 xfce4-power-manager
2958 /usr/lib/x86_64-linux-gnu/xfce4/xfconf/xfconfd
-a
Komut satırının tamamını gösterir . Yalnızca işlem kimlik numarasını göstermeyi unutmayın.
-f
tam komut satırında arama yapar . Yalnızca adları aramak için atlayın.
man grep
komutu için veya belirli komutlar hakkında daha fazla bilgi (inc. Grep) yapabilirsiniz referans manuel sayfasını okumak içininfo grep
.... yani. sisteminizde genellikle çok kullanışlı olan belgeler bulunur.