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