Kako zamijeniti novi redak zarezom pomoću naredbe `sed`

How Replace Newline With Comma Using Sed Command



Bilo koji znak ili niz može se zamijeniti pomoću naredbe `sed`. Ponekad moramo zamijeniti znak novog reda ( n) u datoteci zarezom. U ovom članku naredbom `sed` zamjenjujemo n zarezom.

Upotrijebite `sed` za zamjenu n zarezom

Mnogi se problemi mogu pojaviti pri zamjeni n zarezom. Prema zadanim postavkama, svaki redak završava s n pri stvaranju datoteke. Naredba `sed` može se lako podijeliti na n i zamijeniti novi redak bilo kojim znakom. Drugi razdjelnik može se koristiti umjesto n, ali samo kada se koristi GNU sed. Kada n nedostaje u zadnjem retku datoteke, GNU sed može izbjeći ispis n. Nadalje, n se obično dodaje svakom uzastopnom izlazu `sed`.







Stvorite datoteku

U ovom ćemo vam članku pokazati kako pomoću naredbe `sed` zamijeniti n zarezom. Da biste slijedili ovaj vodič, stvorite tekstualnu datoteku pod nazivom Clients.txt sa sljedećim tabličnim podacima o klijentu.



iskaznica Ime E -pošta Telefon
c01 Doktor medicine. Rakib [zaštićena e -pošta] 01856233238
c02 Meher Afroze [zaštićena e -pošta] 01733536342
c03 Fakrul Ahsan [zaštićena e -pošta] 01934737248
c04 Helal Uddin [zaštićena e -pošta] 01534895898
c05 Nusrat Jahan [zaštićena e -pošta] 01866345254

Primjer 1: Zamijenite n zarezom pomoću -z

Opcija -z koristi se za pretvaranje n u nulti znak ( 0). Sadržaj datoteke tretira se kao jedan redak ako ne sadrži null znakove. Naredba `sed` pretvorit će novi redak u null znak i zamijeniti svaki n zarezom pomoću prvog uzorka za pretraživanje i zamjenu. Ovdje se 'g' koristi za globalno pretraživanje n. S drugim uzorkom za pretraživanje i zamjenu, posljednji zarez bit će zamijenjen s n.



$mačkaClients.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja naredbi.





Primjer 2: Zamijenite n zarezom pomoću a, b, $! i N.

Naredbom `sed` može se zamijeniti n zarezom pomoću a, b, N i $! . Ovdje, do koristi se za dodavanje zadataka, b koristi se za grananje sadržaja, N koristi se za prelazak na sljedeći redak i $! koristi se za sprječavanje primjene zamjenskog zadatka na zadnji redak. Naredba će zamijeniti svaku n sa zarezom osim zadnjeg retka.



$mačkaClients.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja naredbi.

Primjer 3: Zamijenite n zarezom pomoću H, h, d, x i y

Ako želite zamijeniti n) sa zarezom u maloj datoteci, tada se može koristiti sljedeća naredba `sed`. Ovdje, H koristi se za dodavanje zadnjeg retka u tekst zadržavanja, 1h se koristi za kopiranje svakog retka datoteke u tekst zadržavanja iz prvog retka, $! d koristi se za brisanje svih redaka osim zadnjeg retka, x koristi se za razmjenu zadržanog teksta i prostora za uzorke, i i koristi se za zamjenu svakog n u držanju teksta sa zarezom.

$mačkaClients.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja naredbi.

Primjer 4: Zamijenite n zarezom koristeći -n, H, h, g i p

Naredba `sed` može se koristiti za zamjenu n sa zarezom sa -n opciju koja sprječava automatski ispis. Kao i u prethodnom primjeru, H ovdje se koristi za dodavanje zadnjeg retka u tekst za zadržavanje, 1h koristi se za kopiranje svakog retka datoteke u tekst čuvanja, $ odnosi se na zadnji redak datoteke, g koristi se za kopiranje iz zadržanog teksta i str služi za ispis.

$mačkaClients.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi.

Primjer 5: Zamijenite n zarezom pomoću H, x, str

H, x i str objašnjeno je u prethodnim primjerima. Prvi izraz za pretraživanje i zamjenu zamijenit će svaki n zarezom, a drugi izraz za pretraživanje i zamjenu zamijenit će zarez na početku retka razmakom.

$mačkaClients.txt

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

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi.

Primjer 6: Zamijenite n zarezom pomoću N i `cat`

Naredba `cat` ovdje se koristi za slanje sadržaja datoteke naredbi` sed` i N koristi se za prelazak na sljedeći redak.

$mačkaClients.txt

$mačkaClients.txt| sed 'N; s/ n/,/'

Sljedeći izlaz bit će proizveden nakon pokretanja gornjih naredbi.

Zaključak

Možda će biti potrebno zamijeniti n zarezom za prijenos podataka iz jednog formata datoteke u drugi. Ova vrsta zamjene može se izvršiti i pomoću drugih naredbi Linuxa. Mnoge opcije naredbi, poput H, N, h i x, mogu se koristiti s naredbom `sed` za dovršetak ovog zadatka. Ovaj vodič govori o nekoliko načina korištenja naredbe `sed` za zamjenu n zarezom.