SED Sostituisci la nuova linea con lo spazio

SED Sostituisci la nuova linea con lo spazio
In Unix/Linux, il comando SED è uno strumento dedicato per la modifica dei flussi. Può eseguire varie operazioni su un flusso di testo, come la ricerca, la ricerca e la sostituzione e l'inserimento/eliminazione. Per la maggior parte, tuttavia, SED viene utilizzato per trovare e sostituire i contenuti di testo.

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.TXT

Il 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'.TXT

Tuttavia, 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.TXT

Il comando SED ha più sezioni; Ognuno indica un'attività specifica:

  • : A: crea un'etichetta "A"
  • N: aggiunge la riga successiva allo spazio dei pattern
  • $!BA: Se non l'ultima riga, ritorna per etichettare 'A'
  • S/\ n//g: trova e sostituisce la nuova linea (\ n) con spazio (//). Il modello è abbinato a livello globale (/g)

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'.TXT

Metodi 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.txt

Possiamo 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//'.TXT

Un 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.TXT

Simile 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.TXT

Conclusione

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.