2011-11-30 8 views

risposta

23

Per le linee che iniziano con comm=

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

awk '/^comm=/' filex 

Se comm= è in qualsiasi punto della linea di allora

sed -n '/comm=/p' filex 

awk '/comm=/' filex 
+0

che funziona solo comm è all'inizio della riga, come farlo funzionare se comm è in qualsiasi punto in ogni riga, grazie per il tuo aiuto Jaypa – wael

+0

Basta rimuovere il '^'simbolo. –

+0

questo sta restituendo l'intera linea voglio solo restituire la corrispondenza, e questo è come può essere fatto: grep -o '\ ', grazie per il vostro aiuto – wael

5

Si potrebbe utilizzare grep anche:

grep comm= filex 

questo mostrerà tutte le righe contenenti comm=.

+0

@Jaypal: corretto, corretto, e ho salvato il tuo link, grazie;) –

+1

o 'grep"^comm = "filex' per abbinare le righe che iniziano con 'comm ='? – vefthym

2

Ecco un approccio usando grep:

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

Questo considera una parola composta da caratteri alfanumerici; estendere la classe di caratteri secondo necessità.

+0

grazie Micheal funziona – wael

+2

@bob Dato che hai dichiarato in un commento che è solo un 'comm =' per riga, questa soluzione è eccessiva; usa la risposta di Cédric Julien. Inoltre, per dire "grazie" su Stackoverflow, puoi semplicemente alzare le risposte utili anziché commentare. –

0

Se grep è ok per l'uso, si potrebbe dare una prova di:

grep -E "^comm=" file 
Problemi correlati