2013-03-22 13 views
11

ile filtreleyin. Sadece "desen" içeren satırları görüntülemek için cat veya objdump.her linux bash çıkış hattını regexp

Bunu yapmak için tek liner UNIX/Linux komutu var mı?

örn. statik bir dosya olursa bana

+2

'xargs', çıktıdaki her satırı bağımsız bir argüman olarak grep'e geçirir. '' 'grep'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' <= \ '' [=] ’[=] 'in çıkışını pipettiğinizde' stdin'den okuma yeteneğine sahiptir Yani sadece 'xargs' kaldırılması çalışmalıdır. Grep için '-l 'seçeneği kullanım durumunuz için gerçekten gerekli değildir. Ve eğer '-l' desenini kullanmadan önce ve sonra değil, – Tuxdude

cevap

12
cat file | grep pattern 

Ayrıca sadece grep pattern file kullanabilirsiniz için cat filepath | xargs grep 'pattern' -l çalışmıyor.

+0

satır numaralarını görüntülemek için ''n'' işaretini kullanabilirsiniz. '' cat dosya | grep -n pattern'' –

+0

ah çok basit ... cevap kabul edildi! –

4

grep -e veya egrep kullanmak daha iyi (bu, uzun süreli normal ifadelere izin verir). Sonra regex ile daha sağlam şeyler yapabilirsiniz:

cat my_phonebook | egrep "[0-9]{10}" 

Bir dosyadaki tüm 10 haneli telefon numarası göstermek için.

-o numaralı belgeye girerseniz, yalnızca numaralar döndürülür (satırdaki içerikten önce ve sonra yerine).