Jebkuru rakstzīmi vai virkni var aizstāt, izmantojot komandu 'sed'. Dažreiz faila jaunrindas rakstzīme ( n) jāaizstāj ar komatu. Šajā rakstā mēs izmantojam komandu `sed`, lai aizstātu n ar komatu.
Izmantojiet 'sed', lai aizstātu n ar komatu
Aizstājot n ar komatu, var rasties daudzas problēmas. Pēc noklusējuma, veidojot failu, katra rinda beidzas ar n. Komanda 'sed' var viegli sadalīt n un aizstāt jauno rindu ar jebkuru rakstzīmi. N vietā var izmantot citu norobežotāju, bet tikai tad, ja tiek izmantots GNU sed. Ja faila pēdējā rindā trūkst n, GNU sed var izvairīties no drukāšanas n. Turklāt n parasti tiek pievienots katrai secīgajai 'sed' izvadei.
Izveidojiet failu
Šajā rakstā mēs parādīsim, kā izmantot komandu 'sed', lai aizstātu n ar komatu. Lai sekotu šai apmācībai, izveidojiet teksta failu ar nosaukumu Clients.txt ar šādu tabulas informāciju par klientu.
ID | Vārds | E -pasts | Tālrunis |
---|---|---|---|
c01 | Md. Rakib | [pasts aizsargāts] | 01856233238 |
c02 | Mehera Afroze | [pasts aizsargāts] | 01733536342 |
c03 | Fakruls Ahsans | [pasts aizsargāts] | 01934737248 |
c04 | Helal Uddin | [pasts aizsargāts] | 01534895898 |
c05 | Nusrats Jahan | [pasts aizsargāts] | 01866345254 |
1. piemērs: aizstājiet n ar komatu, izmantojot -z
Opciju -z izmanto, lai pārvērstu n par nulles rakstzīmi ( 0). Faila saturs tiek uzskatīts par vienu rindu, ja tajā nav nevienas nulles rakstzīmes. Komanda 'sed' pārveidos jauno rindu 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. Izmantojot otro meklēšanas un aizstāšanas modeli, pēdējais komats tiks aizstāts ar n.
$kaķisClients.txt
$sed -Ar 's/ n/,/g; s/, $/ n/'Clients.txt
Pēc komandu palaišanas tiks izveidota šāda izvade.
2. piemērs. Aizstājiet n ar komatu, izmantojot a, b, $! un N.
Komandu 'sed' var izmantot, lai aizstātu n ar komatu, izmantojot a, b, N un $! . Šeit, uz izmanto uzdevumu pievienošanai, b tiek izmantots satura atzarošanai, N tiek izmantots, lai pārietu uz nākamo rindu, un $! tiek izmantots, lai novērstu aizstāšanas uzdevuma piemērošanu pēdējai rindai. Komanda aizstās katru n ar komatu, izņemot pēdējo rindiņu.
$kaķisClients.txt
$sed ': a; N; $! ba; s/ n/,/g'Clients.txt
Pēc komandu palaišanas tiks izveidota šāda izvade.
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ā, tad var izmantot šādu komandu `sed`. Šeit, H tiek izmantota, lai turēšanas tekstam pievienotu pēdējo rindu, 1 h tiek izmantota, lai kopētu katru faila rindu turēšanas tekstā no pirmās rindas, $! d tiek izmantots, lai dzēstu visas rindas, izņemot pēdējo rindu, x tiek izmantots, lai apmainītos ar turēšanas tekstu un raksta atstarpi, un un tiek izmantots, lai aizstātu katru n turēšanas tekstā ar komatu.
$kaķisClients.txt$sed 'H; 1h; $! D; x; y/ n/,/'Clients.txt
Pēc komandu palaišanas tiks izveidota šāda izvade.
4. piemērs. Aizstājiet n ar komatu, izmantojot -n, H, h, g un p
Komandu 'sed' var izmantot, lai aizstātu n ar komatu ar -n iespēja, kas neļauj automātiski drukāt. Tāpat kā iepriekšējā piemērā, H šeit tiek izmantots, lai turēšanas tekstam pievienotu pēdējo rindiņu, 1h tiek izmantots, lai kopētu katru faila rindu turēšanas tekstā, $ attiecas uz faila pēdējo rindu, g tiek izmantots, lai kopētu no turēšanas teksta, un lpp tiek izmantots drukāšanai.
$kaķisClients.txt$sed-n'H; 1h;${g; s / n/,/g; p} 'Clients.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade.
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ķisClients.txt$sed-n'H; $ {x; s/ n/,/g; s/^, //; p;}'Clients.txt
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade.
6. piemērs. Aizstājiet n ar komatu, izmantojot N un 'cat'
Komanda 'kaķis' šeit tiek izmantota, lai nosūtītu faila saturu komandai 'sed', un N tiek izmantots, lai pārietu uz nākamo rindu.
$kaķisClients.txt$kaķisClients.txt| sed 'N; s/ n/,/'
Pēc iepriekš minēto komandu palaišanas tiks izveidota šāda izvade.
Secinājums
Lai pārsūtītu datus no viena faila formāta uz citu, var būt nepieciešams nomainīt n ar komatu. Šāda veida nomaiņu var veikt arī, izmantojot citas Linux komandas. Lai izpildītu šo uzdevumu, ar komandu `sed` var izmantot daudzas komandu opcijas, piemēram, H, N, h un x. Šī apmācība aptver vairākus veidus, kā izmantot komandu 'sed', lai aizstātu n ar komatu.