Mis tahes märgi või stringi saab asendada käsuga 'sed'. Mõnikord peame failis uue rea märgi (\ n) asendama komaga. Selles artiklis kasutame käsku „sed”, et asendada \ n komaga.
Kasutades sõna „sed”, asendatakse \ n komaga
\ N komaga asendamisel võib tekkida palju probleeme. Vaikimisi lõpeb faili loomisel iga rida \ n-ga. Käsku „sed” saab hõlpsasti jaotada \ n ja asendada uue rea mis tahes tähemärgiga. \ N asemel saab kasutada teist eraldajat, kuid ainult siis, kui kasutatakse GNU sed-i. Kui faili viimasel real puudub \ n, saab GNU sed printimist vältida \ n. Lisaks lisatakse \ n tavaliselt igale järjestikusele „sed” väljundile.
Looge fail
Selles artiklis me näitame teile, kuidas kasutada käsku „sed”, et asendada \ n komaga. Selle õpetuse järgimiseks looge nimega tekstifail Kliendid.txt järgmise tabeliga klienditeabega.
ID | Nimi | E-post | Telefon |
---|---|---|---|
c01 | Md. Rakib | [meiliga kaitstud] | 01856233238 |
c02 | Meher Afroze | [meiliga kaitstud] | 01733536342 |
c03 | Fakrul Ahsan | [meiliga kaitstud] | 01934737248 |
c04 | Helal Uddin | [meiliga kaitstud] | 01534895898 |
c05 | Nusrat Jahan | [meiliga kaitstud] | 01866345254 |
Näide 1: asendage \ n komaga, kasutades -z
Valikut -z kasutatakse \ n teisendamiseks nullmärgiks (\ 0). Faili sisu käsitletakse ühe reana, kui see ei sisalda nullmärke. Käsk „sed” teisendab uue rea nullmärgiks ja asendab iga \ n komaga, kasutades esimest otsingu- ja asendusmustrit. Siin kasutatakse tähte „g” globaalselt \ n otsimiseks. Teise otsingu- ja asendusmustri korral asendatakse viimane koma numbriga \ n.
$ kassi kliendid.txt$ sed -z 's / \ n /, / g; s /, $ / \ n /' kliendid.txt
Pärast käskude käivitamist luuakse järgmine väljund.
Näide 2: asendage \ n komaga, kasutades a, b, $! ja N
Käsuga 'sed' saab asendada \ n komaga, kasutades a, b, N ja $!. Siin, a kasutatakse ülesannete lisamiseks, b kasutatakse sisu hargnemiseks, N kasutatakse järgmisele reale liikumiseks ja $! kasutatakse selleks, et vältida asendusülesande rakendamist viimasele reale. Käsk asendab kõik \ n komaga, välja arvatud viimane rida.
$ kassi kliendid.txt$ sed ': a; N; $!ba; s / \ n /, / g 'kliendid.txt
Pärast käskude käivitamist luuakse järgmine väljund.
Näide 3: asendage \ n komaga, kasutades H, h, d, x ja y
Kui soovite asendada \ n) komaga väikeses failis, siis saab kasutada järgmist käsku "sed". Siin, H kasutatakse viimase rea lisamiseks hoidmistekstile, 1h kasutatakse faili iga rea kopeerimiseks esimesest reast hoidmisteksti, $!d kasutatakse kõigi ridade, välja arvatud viimase rea, kustutamiseks, x kasutatakse hoidva teksti ja mustriruumi vahetamiseks ja y kasutatakse nende asendamiseks \ n hoiatavas tekstis komaga.
$ kassi kliendid.txt$ sed 'H; 1h; $!d; x; y / \ n /, / 'Kliendid.txt
Pärast käskude käivitamist luuakse järgmine väljund.
Näide 4: asendage \ n komaga, kasutades -n, H, h, g ja p
Asendamiseks saab kasutada käsku „sed” \ n komaga koos -n suvand, mis takistab automaatset printimist. Nagu eelmises näites, H kasutatakse siin hoidmisteksti viimase rea lisamiseks, 1h kasutatakse faili kõigi ridade kopeerimiseks hoidmisteksti, $ viitab faili viimasele reale, g kasutatakse hoidmisteksti kopeerimiseks ja lk kasutatakse printimiseks.
$ kassi kliendid.txt$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" kliendid.txt
Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund.
Näide 5: asendage \ n komaga, kasutades H, x, p
H, x ja lk on selgitatud varasemates näidetes. Esimene otsingu- ja asendusavaldus asendab need kõik \ n komaga ning teine otsingu- ja asendusavaldus asendab koma rea alguses tühikuga.
$ kassi kliendid.txt$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' kliendid.txt
Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund.
Näide 6: asendage \ n komaga, kasutades N ja 'cat'
Käsku "kass" kasutatakse siin faili sisu saatmiseks käsule "sed" ja N kasutatakse järgmisele reale liikumiseks.
$ kassi kliendid.txt$ kassi kliendid.txt | sed 'N; s / \ n /, /'
Pärast ülaltoodud käskude käivitamist luuakse järgmine väljund.
Järeldus
Andmete ülekandmiseks ühest failivormingust teise võib osutuda vajalikuks asendada \ n komaga. Seda tüüpi asendust saab teha ka teiste Linuxi käskude abil. Selle ülesande täitmiseks saab käsuga 'sed' kasutada paljusid käsuvalikuid, näiteks H, N, h ja x. Selles õpetuses käsitletakse mitut viisi, kuidas kasutada käsku „sed”, et asendada \ n komaga.