2011-11-30 13 views
9

Dosyadan comm= ile başlayan tüm satırları yazdırmak için "awk" veya "sed" kullanmak istiyorum filex, her satırı "comm = somthing""awk" veya "comm =" ile başlayan tüm satırları yazdırmak için bas kullanmak istiyorum

for example : comm=rm , comm=ll, comm=ls .... 

Nasıl elde edebilirsiniz içerdiğini unutmayın? comm=

sed -n '/^comm=/p' filex 

awk '/^comm=/' filex 

Eğer comm= ile başlayan hatlar için

+0

? satır başına bir 'comm = rm'? Satır başına –

+0

Evet, her satır comm = x – wael

cevap

23

sonra

sed -n '/comm=/p' filex 

awk '/comm=/' filex 
+0

içerir, sadece çalışır, bu satırın başında olduğunu, her satırda herhangi bir yerde comm varsa, nasıl çalışırsınız, yardım için teşekkürler Jaypa – wael

+0

Sadece kaldırmak^'sembolü. –

+0

bu, sadece eşleşmeyi geri vermek istiyorum tüm satırı döndürüyor ve bu nasıl yapılabilir: grep -o '\ ', yardımınız için teşekkürler – wael

5

Ayrıca grep kullanabilirsiniz çizgide yerde geçerli:

grep comm= filex 

bu görüntüler bütün comm= içeren satırlar.

+0

@Jaypal: doğru, düzeltildi ve bağlantınızı kaydettim, teşekkürler;) –

+1

veya 'grep '^ comm =" filex "ile başlayan satırları eşleştirmek için comm = '? – vefthym

2

İşte grep kullanarak bir yaklaşım: Bu alfanümerik karakterden oluşan bir kelime davranır

grep -o '\<comm=[[:alnum:]]*\>' 

; karakter sınıfını gerektiği gibi genişletir.

+0

teşekkürler Micheal bu işe yarıyor – wael

+2

@bob Bir yorumda belirtildiğini açıkladığına göre, her satırda sadece bir 'comm =' olduğunu, bu çözümün aşırı olduğunu; Cevabı Cédric Julien'den kullanın. Ek olarak, Stackoverflow'ta "teşekkürler" demek için, yorum yapmaktan ziyade yararlı cevaplar alabilirsiniz. –

0

grep kullanmak için ok varsa ayrıca bir deneyin verebilir:

Dosyanızı nasıl yapılır
grep -E "^comm=" file 
İlgili konular