2012-10-02 14 views
8

Speravo che qualcuno potesse dare una mano in questo. Sto cercando di capire come visualizzare la prima riga che contiene una determinata stringa, cioè "computer" (prima occorrenza di "computer" in un file txt). Preferirei farlo usando grep.Come visualizzare la prima riga che contiene una determinata stringa in un file di testo unix?

so grep "computer" somefile.txt

sarebbe visualizzare tutte le linee, tra cui "computer". Sono ansioso di imparare e se qualcuno ha modi alternativi mi piacerebbe sentire!

Thx everyone

+1

Intendi "contiene" o "non contiene"? La tua domanda sembra parlare di entrambi ... – singpolyma

+0

'-n' stamperà il numero di riga nel file. Solo un supplemento a tutte le risposte. – squiguy

+0

@squiguy E -A 3 stamperà le 3 righe dopo la partita, quindi cosa. Non stiamo riscrivendo la pagina man di grep :-) –

risposta

14

Utilizzare l'opzione conteggio partita grep

grep -m 1 "computer" somefile.txt 

noti che grep è non standard attraverso un * x di così mentre http://www.gnu.org/software/grep/ sostiene questa, se la vostra distro o unix non funziona così.

+0

grazie questo funziona – Masterminder

+0

Cool - e come hanno mostrato gli altri - c'è più di un modo per farlo –

+0

Si prega di notare che questa opzione potrebbe non esistere nella versione di 'grep', poiché non è standard: http://pubs.opengroup.org/onlinepubs/007904875 /utilities/grep.html – singpolyma

-1

È questo compito?

grep -v "computer" somefile.txt | head -n 1 

Viene in mente il più veloce.

+0

Sto solo provando gli esercizi. Dal modo in cui viene visualizzata solo la prima riga del file ... Non la prima occorrenza di "computer" – Masterminder

+0

Ciò è dovuto al "-v". -v in grep significa: "Non corrisponde" – Sandro

+0

grazie mille vedo quello che volevi dire prima – Masterminder

10

Tubi sono tuo amico:

grep "computer" somefile.txt | head -n1 
+0

Nizza questo funziona così – Masterminder

Problemi correlati