Bet kurį simbolį ar eilutę galima pakeisti naudojant komandą „sed“. Kartais faile naują eilutės simbolį (\ n) turime pakeisti kableliu. Šiame straipsnyje mes naudojame komandą „sed“, kad pakeistume \ n kableliu.
Naudojant žodį „sed“, pakeiskite \ n kableliu
Pakeitus \ n kableliu, gali kilti daug problemų. Pagal numatytuosius nustatymus kiekviena eilutė baigiasi \ n kuriant failą. „Sed“ komanda gali lengvai suskaidyti \ n ir pakeisti naują eilutę bet kuriuo simboliu. Kitas atribiklis gali būti naudojamas vietoj \ n, bet tik tada, kai naudojamas GNU sed. Kai paskutinėje failo eilutėje trūksta \ n, GNU sed gali išvengti spausdinimo \ n. Be to, \ n paprastai pridedama prie kiekvienos iš eilės „sed“ produkcijos.
Sukurkite failą
Šiame straipsnyje parodysime, kaip naudoti komandą „sed“, kad pakeistumėte \ n kableliu. Norėdami sekti šią mokymo programą, sukurkite tekstinį failą pavadinimu Klientai.txt su lentelės lentelės kliento informacija.
ID | vardas | El | Telefonas |
---|---|---|---|
c01 | Md. Rakibas | [apsaugotas el. paštu] | 01856233238 |
c02 | Meheris Afroze | [apsaugotas el. paštu] | 01733536342 |
c03 | Fakrulas Ahsanas | [apsaugotas el. paštu] | 01934737248 |
c04 | Helal Uddin | [apsaugotas el. paštu] | 01534895898 |
c05 | Nusratas Jahanas | [apsaugotas el. paštu] | 01866345254 |
1 pavyzdys: pakeiskite \ n kableliu naudodami -z
Parinktis -z naudojama norint konvertuoti \ n į nulinį simbolį (\ 0). Failo turinys laikomas viena eilute, jei jame nėra jokių simbolių. „Sed“ komanda konvertuos naują eilutę į „null“ simbolį ir pakeis kiekvieną \ n kableliu naudodama pirmąją paieškos ir pakeitimo šabloną. Čia „g“ naudojama visuotinai ieškoti \ n. Antrą kartą ieškant ir pakeičiant šabloną, paskutinis kablelis bus pakeistas į \ n.
$ katės klientai.txt$ sed -z 's / \ n /, / g; s /, $ / \ n /' klientai.txt
Ši išvestis bus sukurta paleidus komandas.
2 pavyzdys: pakeiskite \ n kableliu naudodami a, b, $! ir N
Komandą „sed“ galima naudoti pakeičiant \ n kableliu naudojant a, b, N ir $!. Čia, a naudojamas užduotims pridėti, b naudojamas šakoti turinį, N yra naudojamas pereiti prie kitos eilutės ir $! yra naudojama siekiant užkirsti kelią pakeitimo užduoties pritaikymui paskutinėje eilutėje. Komanda pakeis kiekvieną \ n kableliu, išskyrus paskutinę eilutę.
$ katės klientai.txt$ sed ': a; N; $!ba; s / \ n /, / g 'klientai.txt
Ši išvestis bus sukurta paleidus komandas.
3 pavyzdys: pakeiskite \ n kableliu naudodami H, h, d, x ir y
Jei norite pakeisti \ n) su kableliu mažame faile, tada galima naudoti šią komandą „sed“. Čia, H naudojamas pridėti paskutinę eilutę prie laikymo teksto, 1h naudojamas nukopijuoti kiekvieną failo eilutę į laikantįjį tekstą iš pirmos eilutės, $!d naudojamas ištrinti visas eilutes, išskyrus paskutinę, x naudojamas keistis laikančio teksto ir rašto erdvei ir y yra naudojamas pakeisti kiekvieną \ n laikančiame tekste su kableliu.
$ katės klientai.txt$ sed 'H; 1h; $!d; x; y / \ n /, / 'Klientai.txt
Ši išvestis bus sukurta paleidus komandas.
4 pavyzdys: pakeiskite \ n kableliu naudodami -n, H, h, g ir p
Komandą „sed“ galima naudoti norint pakeisti \ n su kableliu su -n parinktis, kuri neleidžia spausdinti automatiškai. Kaip ir ankstesniame pavyzdyje, H čia naudojamas pridėti paskutinę eilutę prie laikymo teksto, 1 val yra naudojamas nukopijuoti visas failo eilutes į laikantį tekstą, $ nurodo paskutinę failo eilutę, g yra naudojamas kopijuoti iš laikomo teksto ir p naudojamas spausdinti.
$ katės klientai.txt$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" klientai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas.
5 pavyzdys: pakeiskite \ n kableliu naudodami H, x, p
H, x ir p buvo paaiškinta ankstesniuose pavyzdžiuose. Pirmoji paieškos ir pakeitimo išraiška pakeis kiekvieną \ n kableliu, o antroji paieškos ir pakeitimo išraiška pakeis kablelį eilutės pradžioje tarpu.
$ katės klientai.txt$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' klientai.txt
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas.
6 pavyzdys: pakeiskite \ n kableliu naudodami N ir „cat“
Komanda „cat“ čia naudojama failo turiniui nusiųsti komandai „sed“ ir N naudojamas pereiti prie kitos eilutės.
$ katės klientai.txt$ katės klientai.txt | sed 'N; s / \ n /, /'
Ši išvestis bus sukurta paleidus pirmiau nurodytas komandas.
Išvada
Jei norite perkelti duomenis iš vieno failo formato į kitą, gali tekti pakeisti \ n kableliu. Tokio tipo pakeitimą taip pat galima atlikti naudojant kitas „Linux“ komandas. Šiai užduočiai atlikti kartu su komanda „sed“ galima naudoti daug komandų parinkčių, pvz., H, N, h ir x. Šioje pamokoje pateikiami keli būdai, kaip naudoti komandą „sed“, kad pakeistumėte \ n kableliu.