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