Jebkuru rakstzīmi vai virkni var aizstāt, izmantojot komandu “sed”. Dažreiz failā jaunās rindiņas raksturs (\ n) ir jāaizstāj ar komatu. Šajā rakstā mēs izmantojam komandu “sed”, lai aizstātu \ n ar komatu.
Izmantojot “sed”, aizstājiet \ n ar komatu
Aizstājot \ n ar komatu, var rasties daudz problēmu. Pēc noklusējuma, izveidojot failu, katra rindiņa beidzas ar \ n. Komandu “sed” var viegli sadalīt \ n un aizstāt jauno līniju ar jebkuru rakstzīmi. \ N vietā var izmantot citu atdalītāju, bet tikai tad, ja tiek izmantots GNU sed. Ja faila pēdējā rindiņā trūkst \ n, GNU sed var izvairīties no drukāšanas \ n. Turklāt \ n parasti tiek pievienots katrai secīgai “sed” izejai.
Izveidojiet failu
Šajā rakstā mēs parādīsim, kā izmantot komandu “sed”, lai aizstātu \ n ar komatu. Lai sekotu līdzi šai apmācībai, izveidojiet teksta failu ar nosaukumu Klienti.txt ar šādu tabulas informāciju par klientu.
ID | Nosaukums | E-pasts | Tālrunis |
---|---|---|---|
c01 | Md. Rakib | [e-pasts aizsargāts] | 01856233238 |
c02 | Mehers Afroze | [e-pasts aizsargāts] | 01733536342 |
c03 | Fakruls Ahsans | [e-pasts aizsargāts] | 01934737248 |
c04 | Helāls Uddins | [e-pasts aizsargāts] | 01534895898 |
c05 | Nusrats Džahans | [e-pasts aizsargāts] | 01866345254 |
1. piemērs: aizstājiet \ n ar komatu, izmantojot -z
Opciju -z izmanto, lai pārveidotu \ n par nulles rakstzīmi (\ 0). Faila saturs tiek uzskatīts par vienu rindu, ja tajā nav nevienas rakstzīmes. Komanda 'sed' pārveidos jauno līniju par nulles rakstzīmi un aizstās katru \ n ar komatu, izmantojot pirmo meklēšanas un aizstāšanas modeli. Šeit 'g' tiek izmantots, lai globāli meklētu \ n. Ar otro meklēšanas un aizstāšanas modeli pēdējais komats tiks aizstāts ar \ n.
$ kaķu klienti.txt$ sed -z 's / \ n /, / g; s /, $ / \ n /' klienti.txt
Pēc komandu palaišanas tiks izveidota šāda izeja.
2. piemērs: aizstājiet \ n ar komatu, izmantojot a, b, $! un N
Ar komandu “sed” var aizstāt \ n ar komatu, izmantojot a, b, N un $!. Šeit, a tiek izmantots uzdevumu pievienošanai, b tiek izmantots, lai sazarotu saturu, N tiek izmantots, lai pārietu uz nākamo rindu, un $! tiek izmantots, lai aizvietošanas uzdevums netiktu piemērots pēdējai rindai. Komanda aizstās katru \ n ar komatu, izņemot pēdējo rindiņu.
$ kaķu klienti.txt$ sed ': a; N; $!ba; s / \ n /, / g 'klienti.txt
Pēc komandu palaišanas tiks izveidota šāda izeja.
3. piemērs: aizstājiet \ n ar komatu, izmantojot H, h, d, x un y
Ja vēlaties nomainīt \ n) ar komatu nelielā failā, var izmantot šādu komandu “sed”. Šeit, H tiek izmantots pēdējās rindas pievienošanai turēšanas tekstam, 1h tiek izmantots, lai visas faila rindas kopētu turēšanas tekstā no pirmās rindas, $!d tiek izmantots, lai izdzēstu visas rindas, izņemot pēdējo, x tiek izmantots, lai apmainītos ar teksta un raksta atstarpi, un y tiek izmantots, lai aizstātu katru \ n turēšanas tekstā ar komatu.
$ kaķu klienti.txt$ sed 'H; 1h; $!d; x; y / \ n /, / 'Klienti.txt
Pēc komandu palaišanas tiks izveidota šāda izeja.
4. piemērs: aizstājiet \ n ar komatu, izmantojot -n, H, h, g un p
Lai aizstātu, var izmantot komandu “sed” \ n ar komatu ar -n opcija, kas novērš automātisku drukāšanu. Tāpat kā iepriekšējā piemērā, H šeit tiek izmantots pēdējās rindas pievienošanai turēšanas tekstam, 1h tiek izmantots, lai kopētu visas faila rindas uz turēšanas tekstu, $ attiecas uz faila pēdējo rindiņu, g tiek izmantots, lai kopētu no turēšanas teksta, un lpp tiek izmantots drukāšanai.
$ kaķu klienti.txt$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" klienti.txt
Pēc iepriekš minēto komandu izpildīšanas tiks izveidota šāda izeja.
5. piemērs: aizstājiet \ n ar komatu, izmantojot H, x, p
H, x un p ir izskaidroti iepriekšējos piemēros. Pirmā meklēšanas un aizstāšanas izteiksme aizstās katru \ n ar komatu, un otrā meklēšanas un aizstāšanas izteiksme aizstās komatu rindas sākumā ar atstarpi.
$ kaķu klienti.txt$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' klienti.txt
Pēc iepriekš minēto komandu izpildīšanas tiks izveidota šāda izeja.
6. piemērs: aizstājiet \ n ar komatu, izmantojot N un “cat”
Komanda 'cat' šeit tiek izmantota faila satura nosūtīšanai komandai 'sed' un N tiek izmantots, lai pārietu uz nākamo rindu.
$ kaķu klienti.txt$ kaķu klienti.txt | sed 'N; s / \ n /, /'
Pēc iepriekš minēto komandu izpildīšanas tiks izveidota šāda izeja.
Secinājums
Lai pārsūtītu datus no viena faila formāta uz citu, var būt nepieciešams aizstāt \ n ar komatu. Šāda veida nomaiņu var veikt arī, izmantojot citas Linux komandas. Lai izpildītu šo uzdevumu, kopā ar komandu “sed” var izmantot daudzas komandu opcijas, piemēram, H, N, h un x. Šajā apmācībā ir aprakstīti vairāki veidi, kā izmantot komandu “sed”, lai aizstātu \ n ar komatu.