Come sostituire la nuova riga con la virgola usando il comando `sed`

How Replace Newline With Comma Using Sed Command

Qualsiasi carattere o stringa può essere sostituita utilizzando il comando `sed`. A volte, è necessario sostituire il carattere di nuova riga ( ) in un file con una virgola. In questo articolo, usiamo il comando `sed` per sostituire con una virgola.

Usare `sed` per sostituire con una virgola

Molti problemi possono verificarsi quando si sostituisce con una virgola. Per impostazione predefinita, ogni riga termina con durante la creazione di un file. Il comando `sed` può facilmente dividere su e sostituire la nuova riga con qualsiasi carattere. Un altro delimitatore può essere usato al posto di , ma solo quando si usa GNU sed. Quando manca nell'ultima riga del file, GNU sed può evitare di stampare . Inoltre, viene solitamente aggiunto a ogni output consecutivo di `sed`.



Crea un file

In questo articolo, ti mostreremo come utilizzare il comando `sed` per sostituire con una virgola. Per seguire questo tutorial, crea un file di testo chiamato Clienti.txt con le seguenti informazioni tabulari sul client.



ID Nome E-mail Telefono
c01 Md. Rakib [e-mail protetta] 01856233238
c02 Meher Afroze [e-mail protetta] 01733536342
c03 Fakrul Ahsan [e-mail protetta] 01934737248
c04 Helal Uddin [e-mail protetta] 01534895898
c05 Nusrat Jahan [e-mail protetta] 01866345254

Esempio 1: sostituisci con una virgola usando -z

L'opzione -z viene utilizzata per convertire nel carattere null (). Il contenuto del file viene trattato come una singola riga se non contiene caratteri null. Il comando `sed` convertirà la nuova riga nel carattere null e sostituirà ogni con una virgola utilizzando il primo modello di ricerca e sostituzione. Qui, 'g' è usato per cercare globalmente . Con il secondo modello di ricerca e sostituzione, l'ultima virgola verrà sostituita con .



$gattoClienti.txt

$sed -Insieme a 's/ /,/g;s/,$/ /'Clienti.txt

Il seguente output verrà prodotto dopo l'esecuzione dei comandi.

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

Il comando `sed` può essere usato per sostituire con una virgola usando a, b, N e $! . Qui, a viene utilizzato per aggiungere attività, B viene utilizzato per ramificare il contenuto, n è usato per andare alla riga successiva, e $! viene utilizzato per impedire che l'attività di sostituzione venga applicata all'ultima riga. Il comando sostituirà ciascuno con una virgola tranne l'ultima riga.



$gattoClienti.txt

$sed ':a;N;$!ba;s/ /,/g'Clienti.txt

Il seguente output verrà prodotto dopo l'esecuzione dei comandi.

Esempio 3: sostituisci con una virgola usando H, h, d, x e y

Se vuoi sostituire ) con una virgola in un piccolo file, è possibile utilizzare il seguente comando `sed`. Qui, h è usato per aggiungere l'ultima riga al testo di attesa, 1h è usato per copiare ogni riga del file nel testo di attesa dalla prima riga, $!d viene utilizzato per eliminare tutte le righe tranne l'ultima riga, X è usato per scambiare il testo in attesa e lo spazio del modello, e e è usato per sostituire ciascuno nel testo di attesa con una virgola.

$gattoClienti.txt

$sed 'H;1h;$!d;x;y/ /,/'Clienti.txt

Il seguente output verrà prodotto dopo l'esecuzione dei comandi.

Esempio 4: sostituisci con una virgola usando -n ,H, h, g e p

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

$gattoClienti.txt

$sed-n'H;1h; ${g; s / /,/g;p}'Clienti.txt

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

Esempio 5: sostituisci 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 con una virgola e la seconda espressione di ricerca e sostituzione sostituirà una virgola all'inizio di una riga con uno spazio.

$gattoClienti.txt

$sed-n'H;${x;s/ /,/g;s/^,//;p;}'Clienti.txt

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

Esempio 6: sostituisci 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.

$gattoClienti.txt

$gattoClienti.txt| sed 'N;s/ /,/'

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

Conclusione

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