Vsak znak ali niz lahko zamenjate z ukazom `sed`. Včasih moramo znak nove vrstice ( n) v datoteki zamenjati z vejico. V tem članku uporabljamo ukaz `sed` za zamenjavo n z vejico.
Uporabite `sed` za zamenjavo n z vejico
Pri zamenjavi n z vejico se lahko pojavijo številne težave. Pri ustvarjanju datoteke se privzeto vsaka vrstica konča z n. Ukaz `sed` lahko preprosto razdelite na n in zamenjate novo vrstico s katerim koli znakom. Namesto n je mogoče uporabiti še en ločilo, vendar le, če se uporablja GNU sed. Ko n manjka v zadnji vrstici datoteke, se lahko GNU sed izogne tiskanju n. Poleg tega se n običajno doda vsakemu zaporednemu izhodu 'sed'.
Ustvarite datoteko
V tem članku vam bomo pokazali, kako z ukazom `sed` zamenjati n z vejico. Če želite slediti tej vadnici, ustvarite besedilno datoteko z imenom Clients.txt z naslednjimi tabelarnimi podatki o odjemalcu.
ID | Ime | E-naslov | Telefon |
---|---|---|---|
c01 | Md. Rakib | [zaščiteno po e -pošti] | 01856233238 |
c02 | Meher Afroze | [zaščiteno po e -pošti] | 01733536342 |
c03 | Fakrul Ahsan | [zaščiteno po e -pošti] | 01934737248 |
c04 | Helal Uddin | [zaščiteno po e -pošti] | 01534895898 |
c05 | Nusrat Jahan | [zaščiteno po e -pošti] | 01866345254 |
Primer 1: Zamenjajte n 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 ničelnih znakov. Ukaz `sed` bo novo vrstico pretvoril v ničelni znak in vsako n zamenjal z vejico z uporabo prvega vzorca za iskanje in zamenjavo. Tukaj se 'g' uporablja za globalno iskanje n. Z drugim vzorcem iskanja in zamenjave bo zadnja vejica zamenjana z n.
$mačkaClients.txt
$sed -Z 's/ n/,/g; s/, $/ n/'Clients.txt
Po zagonu ukazov bo prikazan naslednji izhod.
Primer 2: Zamenjajte n z vejico z a, b, $! in N.
Ukaz `sed` lahko uporabite za zamenjavo n z vejico z uporabo a, b, N in $! . Tukaj, do 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.
$mačkaClients.txt
$sed ': a; N; $! ba; s/ n/,/g'Clients.txt
Po zagonu ukazov bo prikazan naslednji izhod.
Primer 3: Zamenjajte n z vejico z uporabo H, h, d, x in y
Če želite zamenjati n) z vejico v majhni datoteki, potem lahko uporabite naslednji ukaz `sed`. Tukaj, H se uporablja za dodajanje zadnje vrstice v besedilo, 1h se uporablja za kopiranje vsake vrstice datoteke v besedilo iz prve vrstice, $! d se uporablja za brisanje vseh vrstic, razen zadnje vrstice, x se uporablja za izmenjavo besedila in prostora za vzorce ter in se uporablja za zamenjavo vsakega n v besedilu z vejico.
$mačkaClients.txt$sed 'H; 1h; $! D; x; y/ n/,/'Clients.txt
Po zagonu ukazov bo prikazan naslednji izhod.
Primer 4: Zamenjajte n z vejico z uporabo -n, H, h, g in p
Ukaz `sed` lahko uporabite za zamenjavo n z vejico z -n možnost, ki preprečuje samodejno tiskanje. Tako kot v prejšnjem primeru, H se tukaj uporablja za dodajanje zadnje vrstice v besedilo, 1 h se uporablja za kopiranje vsake vrstice datoteke v besedilo, $ se nanaša na zadnjo vrstico datoteke, g se uporablja za kopiranje iz zadrževalnega besedila in str se uporablja za tiskanje.
$mačkaClients.txt$sed-n'H; 1h; ${g; s / n/,/g; p} 'Clients.txt
Naslednji izhod bo izdelan po izvajanju zgornjih ukazov.
Primer 5: Zamenjajte n z vejico z uporabo H, x, str
H, x in p razloženo v prejšnjih primerih. Prvi izraz za iskanje in zamenjavo bo zamenjal vsakega n z vejico, drugi izraz za iskanje in zamenjavo pa bo vejico na začetku vrstice nadomestil s presledkom.
$mačkaClients.txt$sed-n'H; $ {x; s/ n/,/g; s/^, //; p;}'Clients.txt
Naslednji izhod bo izdelan po izvajanju zgornjih ukazov.
Primer 6: Zamenjajte n z vejico z uporabo N in `cat`
Ukaz `cat` se tukaj uporablja za pošiljanje vsebine datoteke ukazu` sed` in N se uporablja za premik v naslednjo vrstico.
$mačkaClients.txt$mačkaClients.txt| sed 'N; s/ n/,/'
Naslednji izhod bo izdelan po izvajanju zgornjih ukazov.
Zaključek
Morda bo treba za prenos podatkov iz ene oblike datoteke v drugo zamenjati n z vejico. To vrsto zamenjave lahko izvedete tudi z drugimi ukazi Linuxa. Za dokončanje te naloge lahko z ukazom `sed` uporabite številne možnosti ukazov, na primer H, N, h in x. Ta vadnica obravnava več načinov uporabe ukaza `sed` za zamenjavo n z vejico.