GNU/Linux >> Linux Esercitazione >  >> Linux

Mostra tutto il file fino alla partita?

grep --before-context 5 mostra 5 righe prima della partita.

Voglio mostrare tutto prima della partita.
Facendo grep --before-context 99999999 funzionerebbe ma non è molto... professionale.

Come mostrare tutto il file fino alla partita?

Risposta accettata:

Sed è meglio per quello.

Basta fare:

sed '/PATTERN/q' FILE

Funziona così:

Per ogni riga, controlliamo se corrisponde a /PATTERN :

  • se sì, lo stampiamo e chiudiamo
  • altrimenti, lo stampiamo

Questa è la soluzione più efficiente, perché non appena vede PATTERN , si chiude. Senza q , sed continua a leggere il resto del file e non fa nulla con esso. Per file di grandi dimensioni può fare la differenza.

Questo trucco può essere utilizzato anche per emulare head :

sed 10q FILE

Linux
  1. Come memorizzare l'output di SHOW PROCESSLIST in un file in MySQL?

  2. Come inserire del testo prima della prima riga di un file?

  3. Linux:come mostrare il tipo di filesystem tramite il terminale??

  4. Salva tutto l'output del terminale in un file?

  5. Come contare il numero di righe in un file dopo una corrispondenza Grep?

Mostra tutte le righe prima di una partita?

Come mostrare il mio file come pagina predefinita

Quali sono le differenze tra grep, awk e sed?

Come usare sed per rimuovere le ultime n righe di un file

Come inserisco il testo nella prima riga di un file usando sed?

Conserva una cronologia di tutte le modifiche apportate a un file di testo