GNU/Linux >> Linux Esercitazione >  >> Linux

Come si combinano tutte le righe che terminano con un carattere barra rovesciata?

Utilizzando uno strumento da riga di comando comune come sed o awk, è possibile unire tutte le righe che terminano con un determinato carattere, come una barra rovesciata?

Ad esempio, dato il file:

foo bar bash baz
dude happy

Vorrei ottenere questo output:

foo bar bash baz
dude happy

Risposta accettata:

una soluzione sed più breve e più semplice:

sed  '
: again
/\$/ {
    N
    s/\n//
    t again
}
' textfile

o one-liner se si utilizza GNU sed :

sed ':x; /\$/ { N; s/\n//; tx }' textfile

Linux
  1. Come hai iniziato con Linux?

  2. Come rimuovere tutte le righe commentate o le righe con uno schema specifico in vim?

  3. Come sostituire una stringa con una stringa contenente una barra con Sed?

  4. Eliminare tutti i commenti C con Sed?

  5. Sostituire Intervallo di linee con Intervallo di linee (sed o altro)?

Come reinstallare tutti i pacchetti installati con Zypper?

Come eliminare tutte le righe di un file in Vim

Come posso sostituire le virgolette singole con un altro carattere in sed?

Come rimuovere il carattere \r con sed

come eseguire una ricerca vim ricerca inversa per tutte le righe senza testo

Come disinstallare completamente un pacchetto (inclusi tutti i file extra forniti con esso) utilizzando yum (o rpm)?