Kā nomainīt rindiņu ar komatu, izmantojot komandu `sed`

How Replace Newline With Comma Using Sed Command



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.