GNU/Linux >> Linux Esercitazione >  >> Linux

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

Eccone uno in awk:

$ awk '/^=+$/{f=!f;if(f==1)next;else if(f==0)exit}f' file
v2.0.0

Added feature 3
Added feature 4

In bella stampa:

$ awk '/^=+$/ {     # at ===...
    f=!f            # flag state is flipped
    if(f==1)        # if its one (first ===...)
        next        # next record
    else if(f==0)   # if zero (second ===...)
        exit        # nothing more to do yeah
}
f' file             # print

Eccone un altro in GNU sed:

$ sed -n '/^=\+$/,//{//!p;b};q' file
v2.0.0

Added feature 3
Added feature 4
  • /^=\+$/,// è una scorciatoia per /^=\+$/,/^=\+$/ , seleziona le linee tra due linee costituite da segni di uguale inclusivi, e i comandi tra le parentesi graffe successive vengono eseguiti per queste linee,
  • //!p è una scorciatoia per /^=\+$/!p , significa che la linea in arrivo non è una di quelle che consistono solo di = s, stampalo,
  • b significa andare alla fine del ciclo (cioè passare q ),
  • q serve per uscire da sed dopo aver stampato le righe selezionate.

La seguente versione funzionerà con tutti seds conforme a POSIX ma sembra 2 volte più criptico:

sed -n -e '/^=\{1,\}$/,//{//!p;b' -e '}' -e 'q' file

Nota che questi non funzioneranno se ci sono due conseguenti tutti = righe nell'input.


Potresti provare a seguire anche tu.

awk '/^=/{count++;next} count>=2{exit} {print}'  Input_file

Linux
  1. Come ottenere solo il numero di righe di un file

  2. Rimuovi in ​​modo efficiente le ultime due righe di un file di testo estremamente grande

  3. Come puoi scambiare i tasti j e k in vim?

  4. Come differenziare solo la prima riga di due file?

  5. Come posso ottenere un elenco di tutte le parole errate in un testo usando Linux?

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

come posso differenziare due sezioni dello stesso file?

Come posso ottenere la lunghezza di un file video dalla console?

Come posso ottenere in modo affidabile il nome del sistema operativo?

Come posso ottenere l'ora dell'orologio da parete di un processo in esecuzione?

Come posso rasterizzare tutto il testo in un PDF?