GNU/Linux >> Linux Esercitazione >  >> Linux

Come selezionare la prima occorrenza tra due modelli che li includono?

Come posso selezionare la prima occorrenza tra due pattern che li includono. Preferibilmente usando sed o awk .

Ho:

text
something P1 something
content1
content2
something P2 something
text
something P1 something
content3
content4
something P2 something
text

Voglio la prima occorrenza delle linee tra P1 e P2 (inclusa la linea P1 e la linea P2):

something P1 something
content1
content2
something P2 something

Risposta accettata:

sed '/P1/,/P2/!d;/P2/q'

…farebbe il lavoro in modo portatile tramite d eleting tutte le righe che fanno ! non rientrano nell'intervallo, quindi q la prima volta che incontra la fine dell'intervallo. Non fallisce per P2 che precede P1 e non richiede la sintassi specifica GNU per scrivere semplicemente.


Linux
  1. Come trasferire file tra due computer utilizzando i comandi nc e pv

  2. Stampa linee tra (e inclusi) due motivi?

  3. Linux:come eliminare i file creati tra due volte?

  4. Come posso ottenere parole tra le prime due istanze di testo/modello?

  5. Come eliminare i file creati tra due volte?

Come trovare la differenza tra due directory usando gli strumenti Diff e Meld

Come sincronizzare automaticamente i file tra due server Linux

Come connettere e condividere dati tra due sistemi Linux

come posso differenziare due sezioni dello stesso file?

Come bloccare tutto il traffico tra due interfacce?

Come faccio a visualizzare i nomi dei file che contengono due caratteri e uno di essi è c?