Come sostituire Newline con virgola usando il comando sed

Come sostituire Newline con virgola usando il comando sed

Qualsiasi carattere o stringa può essere sostituito usando il comando "sed". A volte, dobbiamo sostituire il carattere newline (\ n) in un file con una virgola. In questo articolo, utilizziamo il comando "sed" per sostituire \ n con una virgola.

Usando 'sed' per sostituire \ n con una virgola

Molti problemi possono verificarsi quando si sostituisce \ n con una virgola. Per impostazione predefinita, ogni riga termina con \ n durante la creazione di un file. Il comando "sed" può facilmente dividere su \ n e sostituire la nuova linea con qualsiasi carattere. Un altro delimitatore può essere usato al posto di \ n, ma solo quando viene utilizzato GNU. Quando manca l'ultima riga del file, gnu sed può evitare la stampa \ n. Inoltre, di solito viene aggiunto a ciascun output consecutivo di "SED".

Crea un file

In questo articolo, ti mostreremo come utilizzare il comando "sed" per sostituire \ n con una virgola. Per seguire questo tutorial, crea un file di testo chiamato Clienti.TXT Con le seguenti informazioni sul client tabulare.

ID Nome E-mail Telefono
C01 MD. Rakib [email protected] 01856233238
C02 Meher Afroze [email protected] 01733536342
C03 Fakrul Ahsan [email protected] 01934737248
C04 Helal Uddin [email protected] 01534895898
C05 Nusrat Jahan [email protected] 01866345254

Esempio 1: sostituire \ n con una virgola usando -Z

L'opzione -Z viene utilizzata per convertire \ n nel carattere null (\ 0). Il contenuto del file è trattato come una singola riga se non contiene caratteri null. Il comando "sed" convertirà la nuova linea nel carattere null e sostituirà ogni \ n con una virgola usando la prima ricerca e sostituire. Qui, 'G' viene utilizzato per cercare a livello globale \ n. Con il secondo modello di ricerca e sostituzione, l'ultima virgola verrà sostituita con \ n.

Clienti da $ cat.TXT
$ sed -z 's/\ n/,/g; s/, $/\ n/'.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi.

Esempio 2: sostituire \ n con una virgola usando a, b, $! e n

Il comando "sed" può essere usato per sostituire \ n con una virgola usando A, B, N e $!. Qui, UN viene utilizzato per aggiungere attività, B viene utilizzato per ramificare il contenuto, N è usato per andare alla riga successiva e $! viene utilizzato per impedire l'applicazione dell'attività di sostituzione all'ultima riga. Il comando sostituirà ciascuno \N con una virgola tranne l'ultima riga.

Clienti da $ cat.TXT
$ sed ': a; n; $!BA; s/\ n/,/g 'client.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi.

Esempio 3: sostituire \ n con una virgola usando H, H, D, X e Y

Se vuoi sostituire \N) Con una virgola in un piccolo file, è possibile utilizzare il seguente comando "sed". Qui, H viene utilizzato per aggiungere l'ultima riga al testo di tenuta, 1H viene utilizzato per copiare ogni riga del file nel testo di tenuta dalla prima riga, $!D viene utilizzato per eliminare tutte le linee tranne l'ultima riga, X viene utilizzato per scambiare il testo di tenuta e lo spazio dei motivi e y viene utilizzato per sostituire ciascuno \N nel testo di tenuta con una virgola.

Clienti da $ cat.TXT
$ sed 'h; 1h; $!d; x; y/\ n/,/'client.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi.

Esempio 4: sostituire \ n con una virgola usando -n, h, h, g e p

Il comando "sed" può essere usato per sostituire \N con una virgola con -N Opzione, che impedisce la stampa automatica. Come nell'esempio precedente, H viene utilizzato qui per aggiungere l'ultima riga al testo di tenuta, 1h viene utilizzato per copiare ogni riga del file nel testo di tenuta, $ si riferisce all'ultima riga del file, G viene utilizzato per copiare dal testo di tenuta e P è usato per stampare.

Clienti da $ cat.TXT
$ sed -n "h; 1h; \ $ g; s/\ n/,/g; p" client.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra.

Esempio 5: sostituire \ n con una virgola usando h, x, p

H, X e P sono stati spiegati negli esempi precedenti. La prima espressione di ricerca e sostituzione sostituirà ciascuna \N con una virgola e la seconda espressione di ricerca e sostituzione sostituirà una virgola all'inizio di una linea con uno spazio.

Clienti da $ cat.TXT
$ sed -n 'h; $ x; s/\ n/,/g; s/^, //; p;' client.TXT

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra.

Esempio 6: sostituire \ n con una virgola usando N e 'Cat'

Il comando "Cat" viene utilizzato qui per inviare il contenuto del file al comando "sed" e N viene utilizzato per passare alla riga successiva.

Clienti da $ cat.TXT
Clienti da $ cat.txt | sed 'n; s/\ n/,/'

Il seguente output verrà prodotto dopo aver eseguito i comandi sopra.

Conclusione

Potrebbe essere necessario sostituire \ n con una virgola per trasferire i dati da un formato di file a un altro. Questo tipo di sostituzione può anche essere eseguito utilizzando altri comandi Linux. Molte opzioni di comando, come H, N, H e X, possono essere utilizzate con il comando "SED" per completare questa attività. Questo tutorial esamina diversi modi per utilizzare il comando "sed" per sostituire \ n con una virgola.