Bilo koji znak ili niz mogu se zamijeniti upotrebom naredbe 'sed'. Ponekad moramo zamijeniti znak novog retka (\ n) u datoteci zarezom. U ovom članku koristimo naredbu 'sed' za zamjenu \ n zarezom.
Upotreba 'sed' za zamjenu \ n zarezom
Mnogo problema može se pojaviti prilikom zamjene \ n zarezom. Prema zadanim postavkama, svaki redak završava s \ n prilikom stvaranja datoteke. Naredba 'sed' može se jednostavno podijeliti na \ n i zamijeniti novi redak bilo kojim znakom. Drugi graničnik može se koristiti umjesto \ n, ali samo kada se koristi GNU sed. Kada u posljednjem retku datoteke nedostaje \ n, 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 nastavili s ovim uputstvom, stvorite tekstualnu datoteku s imenom Klijenti.txt sa sljedećim tabličnim podacima o klijentu.
iskaznica | Ime | Telefon | |
---|---|---|---|
c01 | Doktor medicine. Rakib | [e-pošta zaštićena] | 01856233238 |
c02 | Meher Afroze | [e-pošta zaštićena] | 01733536342 |
c03 | Fakrul Ahsan | [e-pošta zaštićena] | 01934737248 |
c04 | Helal Uddin | [e-pošta zaštićena] | 01534895898 |
c05 | Nusrat Jahan | [e-pošta zaštićena] | 01866345254 |
Primjer 1: Zamijenite \ n zarezom pomoću -z
Opcija -z koristi se za pretvaranje \ n u null 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 pretraživanja i zamjene. Ovdje se 'g' koristi za globalno traženje \ n. S drugim uzorkom pretraživanja i zamjene, zadnja zarez zamijenit će se s \ n.
$ mačka Klijenti.txt$ sed -z 's / \ n /, / g; s /, $ / \ n /' Klijenti.txt
Sljedeći će se izlaz dobiti nakon izvršavanja naredbi.
Primjer 2: Zamijenite \ n zarezom pomoću a, b, $! i N
Naredba 'sed' može se koristiti za zamjenu \ n zarezom pomoću a, b, N i $!. Ovdje, a 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 zadatka zadnjeg retka. Naredba će zamijeniti svaku \ n sa zarezom osim zadnjeg retka.
$ mačka Klijenti.txt$ sed ': a; N; $!ba; s / \ n /, / g 'Klijenti.txt
Sljedeći će se izlaz dobiti nakon izvršavanja 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 teksta i prostora uzorka u prostoru za držanje i g koristi se za zamjenu svake \ n u tekstu držanja zarezom.
$ mačka Klijenti.txt$ sed 'H; 1h; $!d; x; y / \ n /, / 'Klijenti.txt
Sljedeći će se izlaz dobiti nakon izvršavanja naredbi.
Primjer 4: Zamijenite \ n zarezom pomoću -n, H, h, g i p
Naredba 'sed' može se koristiti za zamjenu \ n sa zarezom sa -n opcija koja sprječava automatski ispis. Kao u prethodnom primjeru, H ovdje se koristi za dodavanje zadnjeg retka u tekst zadržavanja, 1h koristi se za kopiranje svakog retka datoteke u tekst na kojem se nalazi, $ odnosi se na zadnji redak datoteke, g koristi se za kopiranje iz teksta fonda i str koristi se za ispis.
$ mačka Klijenti.txt$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" Klijenti.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi.
Primjer 5: Zamijenite \ n zarezom pomoću H, x, str
H, x i str su objašnjeni u prethodnim primjerima. Prvi izraz pretraživanja i zamjene zamijenit će svaki \ n zarezom, a drugi izraz pretraživanja i zamjene zamijenit će zarez na početku retka razmakom.
$ mačka Klijenti.txt$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' Klijenti.txt
Sljedeći će se izlaz dobiti nakon izvršavanja gornjih naredbi.
Primjer 6: Zamijenite \ n zarezom koristeći N i 'cat'
Naredba 'mačka' ovdje se koristi za slanje sadržaja datoteke naredbi 'sed' i N koristi se za prelazak na sljedeći redak.
$ mačka Klijenti.txt$ mačka Klijenti.txt | sed 'N; s / \ n /, /'
Sljedeći će se izlaz dobiti nakon izvršavanja 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 upotrebom drugih Linux naredbi. Mnoge naredbene opcije, poput H, N, h i x, mogu se upotrijebiti s naredbom 'sed' za dovršavanje ovog zadatka. Ovaj vodič prelazi na nekoliko načina korištenja naredbe 'sed' za zamjenu \ n zarezom.