In questa guida, mostreremo la sostituzione di nuove linee con spazio usando SED.
Usando SED per sostituire il testo
Innanzitutto, cerchiamo rapidamente di eseguire la ricerca di base e sostituire usando sed. Lo stesso metodo verrà utilizzato quando si sostituiscono le nuove linee con spazi con alcune opzioni aggiuntive. La struttura di comando è la seguente:
$ sed -e 's ///'Dai un'occhiata al seguente comando:
$ echo "The Quick Brown Fox" | sed -e 's/veloce/veloce/g'Il comando echo stampa la stringa su stdout. Il flusso di stdout viene quindi convocato. Abbiamo incaricato SED di sostituire qualsiasi istanza di rapido da sostituire. Infine, l'output è stampato sullo schermo.
Sostituire le nuove linee con spazio
Per dimostrazione, ho creato il seguente test del file di testo.txt con diversi contenuti fittizi:
$ cat test.TXTIl comando SED accetta espressioni regolari per la descrizione di vari schemi. Sfruttando questa funzione, descriveremo Newline come \ n. Proviamo a sostituire le nuove linee con spazi bianchi:
test $ sed -e 's/\ n//g'.TXTTuttavia, non ha funzionato come previsto. Per raggiungere questo obiettivo, abbiamo bisogno di alcune opzioni aggiuntive. Dai un'occhiata al seguente comando:
$ sed -e ': a; n; $!BA; S/\ n//G 'Test.TXTIl comando SED ha più sezioni; Ognuno indica un'attività specifica:
Il comando SED attraversa i passaggi fino a raggiungere l'ultima riga, sostituendo tutti i caratteri con spazio.
Invece di questo comando complesso, possiamo semplificare le cose usando il flag -z che specifica sed per funzionare con i record separati da null. Il comando sembrerebbe così:
test $ sed -z -e 's/\ n//g'.TXTMetodi alternativi
Mentre SED può fare l'attività bene, ci sono alcuni strumenti alternativi. In questa sezione, ne esamineremo brevemente un paio.
Per il seguente esempio, possiamo usare il comando TR per sostituire Newline con spazi bianchi in modo semplice:
$ tr '\ n "< test.txtPossiamo anche usare Perl per fare il lavoro. La seguente sintassi è anche simile a quella che abbiamo usato con SED (ma semplificato):
test $ perl -p -e 's/\ n//'.TXTUn altro modo per sostituire le nuove linee con spazio bianco è l'utilizzo del comando in pasta. Si noti che può rimuovere solo un carattere:
$ paste -s -d "test.TXTSimile a SED, Linux viene fornito con un altro strumento AWK. Simile a SED, può anche eseguire alcuni sostituti avanzati sull'input. Per il nostro scopo, usa il seguente comando AWK:
$ awk 1 ors = "test.TXTConclusione
Questa guida ha esplorato come possiamo sostituire Newline con lo spazio usando SED. È stato ottenuto in due modi diversi. Questa guida include anche altri strumenti pertinenti che possiamo utilizzare per sostituire Newline con spazio bianco.
Invece di usare comandi complessi che sono difficili da memorizzare, usiamo Bash Scripting per eseguire molte cose in Linux. Sebbene sia a costo di alcune prestazioni, la flessibilità e l'usabilità ne valgono la pena. Ulteriori informazioni sugli script bash per i principianti.