Cum se înlocuiește Newline cu virgulă folosind comanda `sed`

How Replace Newline With Comma Using Sed Command



Orice caracter sau șir poate fi înlocuit folosind comanda `sed`. Uneori, trebuie să înlocuim caracterul newline ( n) dintr-un fișier cu o virgulă. În acest articol, folosim comanda `sed` pentru a înlocui n cu o virgulă.

Folosind `sed` pentru a înlocui n cu o virgulă

Multe probleme pot apărea la înlocuirea n cu o virgulă. În mod implicit, fiecare linie se termină cu n la crearea unui fișier. Comanda `sed` se poate împărți cu ușurință pe n și poate înlocui linia nouă cu orice caracter. Un alt delimitator poate fi utilizat în locul lui n, dar numai atunci când este utilizat GNU sed. Când n lipsește în ultima linie a fișierului, GNU sed poate evita imprimarea n. Mai mult, n se adaugă de obicei la fiecare ieșire consecutivă a `sed`.







Creați un fișier

În acest articol, vă vom arăta cum să utilizați comanda `sed` pentru a înlocui n cu o virgulă. Pentru a urma împreună cu acest tutorial, creați un fișier text numit Clients.txt cu următoarele informații tabulare despre client.



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

Exemplul 1: Înlocuiți n cu o virgulă folosind -z

Opțiunea -z este utilizată pentru a converti n la caracterul nul ( 0). Conținutul fișierului este tratat ca o singură linie dacă nu conține caractere nule. Comanda `sed` va converti noua linie în caracter nul și va înlocui fiecare n cu o virgulă folosind primul model de căutare și înlocuire. Aici, „g” este utilizat pentru căutarea globală a n. Cu al doilea model de căutare și înlocuire, ultima virgulă va fi înlocuită cu n.



$pisicăClients.txt

$sed -Cu 's / n /, / g; s /, $ / n /'Clients.txt

Următoarea ieșire va fi produsă după executarea comenzilor.





Exemplul 2: Înlocuiți n cu o virgulă folosind a, b, $! si n

Comanda `sed` poate fi utilizată pentru a înlocui n cu o virgulă folosind a, b, N și $! . Aici, la este folosit pentru a adăuga sarcini, b este folosit pentru a ramifica conținutul, N este folosit pentru a merge la linia următoare și $! este folosit pentru a împiedica aplicarea sarcinii de înlocuire pe ultima linie. Comanda va înlocui fiecare n cu virgulă, cu excepția ultimei linii.



$pisicăClients.txt

$sed ': a; N; $! ba; s / n /, / g'Clienți.txt

Următoarea ieșire va fi produsă după executarea comenzilor.

Exemplul 3: Înlocuiți n cu o virgulă folosind H, h, d, x și y

Dacă doriți să înlocuiți n) cu o virgulă într-un fișier mic, atunci se poate utiliza următoarea comandă `sed`. Aici, H este folosit pentru a atașa ultima linie la textul de reținere, 1h este folosit pentru a copia fiecare linie a fișierului în textul de reținere din prima linie, $! d este folosit pentru a șterge toate liniile, cu excepția ultimei linii, X este folosit pentru a schimba spațiul de text și modelul de reținere și și este folosit pentru a înlocui fiecare n în textul de menținere cu virgulă.

$pisicăClients.txt

$sed „H; 1h; $! D; x; y / n /, /”Clients.txt

Următoarea ieșire va fi produsă după executarea comenzilor.

Exemplul 4: Înlocuiți n cu o virgulă folosind -n, H, h, g și p

Comanda `sed` poate fi utilizată pentru a înlocui n cu virgulă cu -n opțiune, care previne imprimarea automată. Ca în exemplul anterior, H este folosit aici pentru a atașa ultima linie la textul de reținere, 1h este folosit pentru a copia fiecare linie a fișierului în textul de reținere, $ se referă la ultima linie a fișierului, g este folosit pentru a copia din textul deținând și p este folosit pentru a imprima.

$pisicăClients.txt

$sed-n'H; 1 oră; ${g; s / n/, / g; p} 'Clients.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus.

Exemplul 5: Înlocuiți n cu o virgulă folosind H, x, p

H, x și p au fost explicate în exemplele anterioare. Prima expresie de căutare și înlocuire va înlocui fiecare n cu o virgulă, iar a doua expresie de căutare și înlocuire va înlocui o virgulă la începutul unei linii cu un spațiu.

$pisicăClients.txt

$sed-n„H; $ {x; s / n /, / g; s / ^, //; p;}”Clients.txt

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus.

Exemplul 6: Înlocuiți n cu o virgulă folosind N și `cat`

Comanda `cat` este utilizată aici pentru a trimite conținutul fișierului la comanda` sed` și N este folosit pentru a trece la linia următoare.

$pisicăClients.txt

$pisicăClients.txt| sed „N; s / n /, /”

Următoarea ieșire va fi produsă după executarea comenzilor de mai sus.

Concluzie

Poate fi necesar să înlocuiți n cu o virgulă pentru a transfera date dintr-un format de fișier în altul. Acest tip de înlocuire se poate face și prin utilizarea altor comenzi Linux. Multe opțiuni de comandă, cum ar fi H, N, h și x, pot fi utilizate cu comanda `sed` pentru a finaliza această sarcină. Acest tutorial prezintă mai multe moduri de a utiliza comanda `sed` pentru a înlocui n cu o virgulă.