Come rimuovere un ritorno a capo con sed

January 28

Come rimuovere un ritorno a capo con sed


SED è un editor di flusso potente che viene integrato in tutti i computer Unix, Linux e Mac OS X. Eccelle a svolgere automatizzato, modifiche pre-programmati per il formato dei dati di testo in entrata, come i file di log. Per rimuovere un ritorno a capo (o una nuova riga) in SED, si potrebbe supporre la chiave sarebbe il comando sostituto, "sed 's / \ n // g' file.txt". Tuttavia, si sarebbe sorpreso di vedere che non funziona. Per impostazione predefinita, SED funziona solo riga per riga, rendendo impossibile la rimozione fine riga con il semplice comando substitute. Per sfuggire a questo problema, è necessario utilizzare i comandi più oscure.

istruzione

1 Aprire un terminale facendo clic sull'icona "terminale".

2 Digitare quanto segue:

sed '

3 Digitare un;" di dichiarare una etichetta per tornare indietro al più tardi.

4 Tipo "N"; per attivare la modalità multi-linea.

5 Tipo "$ ba;!" per unire tutte le linee insieme e, se si è sull'ultima riga, tornare indietro alla prima linea.

6 Inserisci il tuo modello di sostituzione:

s / \ n / / g

7 Chiudere le citazioni digitando un segno di singolo apice ( ') e digitare il nome del file da elaborare.

Il comando finale dovrebbe essere simile a questo:

sed ': a; N; $ BA; s / \ n / / g'

Consigli e avvertenze

  • La soluzione è meno elegante. Unix, Linux, e Mac OS X tutti forniscono uno strumento più potente ed efficiente per il lavoro: il TR, o tradurre il carattere, il comando. È sufficiente digitare il seguente nella riga di comando:
  • cat file.txt | tr -d '\ n'
  • Questo invia il file attraverso il programma "tr", dicendogli di eliminare ogni carattere di nuova riga.