Vsak znak ali niz lahko nadomestimo z ukazom 'sed'. Včasih moramo znak nove vrstice (\ n) v datoteki zamenjati z vejico. V tem članku z ukazom 'sed' zamenjamo \ n z vejico.
Uporaba 'sed' za zamenjavo \ n z vejico
Pri zamenjavi \ n z vejico lahko pride do številnih težav. Privzeto se pri ustvarjanju datoteke vsaka vrstica konča z \ n. Ukaz 'sed' se lahko enostavno razdeli na \ n in zamenja novo vrstico s katerim koli znakom. Namesto znaka \ n lahko uporabite drugo ločilo, vendar le, če se uporablja GNU sed. Ko v zadnji vrstici datoteke manjka \ n, se GNU sed lahko izogne tiskanju \ n. Poleg tega se \ n običajno doda vsakemu zaporednemu izhodu 'sed'.
Ustvari datoteko
V tem članku vam bomo pokazali, kako z ukazom 'sed' \ \ zamenjate z vejico. Če želite nadaljevati s to vadnico, ustvarite besedilno datoteko z imenom Stranke.txt z naslednjimi tabelarnimi informacijami o odjemalcu.
ID | Ime | E-naslov | Telefon |
---|---|---|---|
c01 | Md. Rakib | [e-pošta zaščitena] | 01856233238 |
c02 | Meher Afroze | [e-pošta zaščitena] | 01733536342 |
c03 | Fakrul Ahsan | [e-pošta zaščitena] | 01934737248 |
c04 | Helal Uddin | [e-pošta zaščitena] | 01534895898 |
c05 | Nusrat Jahan | [e-pošta zaščitena] | 01866345254 |
Primer 1: \ n zamenjajte z vejico z uporabo -z
Možnost -z se uporablja za pretvorbo \ n v ničelni znak (\ 0). Vsebina datoteke se obravnava kot ena vrstica, če ne vsebuje nobenih znakov. Ukaz 'sed' bo novo vrstico pretvoril v ničelni znak in zamenjal \ n z vejico s pomočjo prvega vzorca iskanja in zamenjave. Tu se 'g' uporablja za globalno iskanje \ n. Z drugim vzorcem iskanja in zamenjave se zadnja vejica nadomesti z \ n.
$ cat Stranke.txt$ sed -z 's / \ n /, / g; s /, $ / \ n /' Stranke.txt
Naslednji izhod bo prikazan po zagonu ukazov.
Primer 2: \ n zamenjajte z vejico z uporabo a, b, $! in N
Z ukazom 'sed' lahko \ n nadomestite \ n z vejico a, b, N in $!. Tukaj, a se uporablja za dodajanje nalog, b se uporablja za razvejanje vsebine, N se uporablja za prehod na naslednjo vrstico in $! se uporablja za preprečitev uporabe nadomestne naloge v zadnji vrstici. Ukaz bo zamenjal vsakega \ n z vejico, razen zadnje vrstice.
$ cat Stranke.txt$ sed ': a; N; $!ba; s / \ n /, / g 'Stranke.txt
Naslednji izhod bo prikazan po zagonu ukazov.
Primer 3: \ n zamenjajte z vejico s tipkama H, h, d, x in y
Če želite zamenjati \ n) z vejico v majhni datoteki, potem lahko uporabimo naslednji ukaz 'sed'. Tukaj, H se uporablja za dodajanje zadnje vrstice besedilu zadrževanja, 1h se uporablja za kopiranje vseh vrstic datoteke v besedilo zadrževanja iz prve vrstice, $!d se uporablja za brisanje vseh vrstic, razen zadnje vrstice, x se uporablja za izmenjavo besedila in prostora vzorca, in y se uporablja za zamenjavo vsakega \ n v besedilu držanja z vejico.
$ cat Stranke.txt$ sed 'H; 1h; $!d; x; y / \ n /, / 'Stranke.txt
Naslednji izhod bo prikazan po zagonu ukazov.
Primer 4: \ n zamenjajte z vejico z uporabo -n, H, h, g in p
Za nadomestitev lahko uporabite ukaz 'sed' \ n z vejico z -n možnost, ki preprečuje samodejno tiskanje. Kot v prejšnjem primeru, H se tukaj uporablja za dodajanje zadnje vrstice besedilu zadrževanja, 1h se uporablja za kopiranje vsake vrstice datoteke v besedilo zadrževanja, $ se nanaša na zadnjo vrstico datoteke, g se uporablja za kopiranje iz besedila imetja in str se uporablja za tiskanje.
$ cat Stranke.txt$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" Stranke.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov.
Primer 5: \ n zamenjajte z vejico s pomočjo H, x, str
H, x in str so bili razloženi v prejšnjih primerih. Prvi izraz za iskanje in zamenjavo bo nadomestil vsakega \ n z vejico, drugi izraz za iskanje in zamenjavo pa bo vejico na začetku vrstice zamenjal s presledkom.
$ cat Stranke.txt$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' Stranke.txt
Naslednji izhod bo prikazan po zagonu zgornjih ukazov.
Primer 6: \ n zamenjajte z vejico z uporabo N in 'cat'
Tu se uporablja ukaz 'mačka' za pošiljanje vsebine datoteke ukazu 'sed' in N se uporablja za premik v naslednjo vrstico.
$ cat Stranke.txt$ cat Stranke.txt | sed 'N; s / \ n /, /'
Naslednji izhod bo prikazan po zagonu zgornjih ukazov.
Zaključek
Morda bo treba \ n zamenjati z vejico za prenos podatkov iz ene oblike datoteke v drugo. To vrsto zamenjave lahko izvedemo tudi z drugimi ukazi Linux. Za dokončanje te naloge lahko z ukazom 'sed' uporabite številne možnosti ukaza, na primer H, N, h in x. Ta vadnica opisuje več načinov uporabe ukaza 'sed' za zamenjavo \ n z vejico.