Paano Palitan ang Newline ng Comma Gamit ang `sed` Command

How Replace Newline With Comma Using Sed Command



Ang anumang character o string ay maaaring mapalitan ng paggamit ng `sed` na utos. Minsan, kailangan nating palitan ang newline character ( n) sa isang file ng isang kuwit. Sa artikulong ito, ginagamit namin ang utos na `sed` upang palitan ang n ng isang kuwit.

Paggamit ng `sed` upang mapalitan ang n ng isang kuwit

Maraming mga isyu ang maaaring mangyari kapag pinapalitan ang n ng isang kuwit. Bilang default, ang bawat linya ay nagtatapos sa n kapag lumilikha ng isang file. Ang utos na `sed` ay madaling hatiin sa n at palitan ang newline ng anumang character. Ang isa pang delimiter ay maaaring gamitin bilang kapalit ng n, ngunit kapag ginamit lamang ang GNU sed. Kapag nawawala ang n sa huling linya ng file, maiiwasan ng GNU sed ang pag-print n. Bukod dito, n ay karaniwang idinagdag sa bawat magkakasunod na output ng `sed`.







Lumikha ng isang File

Sa artikulong ito, ipapakita namin sa iyo kung paano gamitin ang utos na `sed` upang palitan ang n ng isang kuwit. Upang sundin kasama ang tutorial na ito, lumikha ng isang text file na pinangalanan Mga kliyente.txt kasama ang sumusunod na impormasyon ng tabular client.



ID Pangalan Email Telepono
c01 Si Md. Rakib [protektado ng email] 01856233238
c02 Meher Afroze [protektado ng email] 01733536342
c03 Fakrul Ahsan [protektado ng email] 01934737248
c04 Helal Uddin [protektado ng email] 01534895898
c05 Nusrat Jahan [protektado ng email] 01866345254

Halimbawa 1: Palitan ang n ng isang kuwit gamit ang -z

Ginagamit ang opsyong -z upang mai-convert ang n sa null character ( 0). Ang nilalaman ng file ay itinuturing na isang solong linya kung wala itong naglalaman ng anumang mga null character. Babaguhin ng utos na `sed` ang newline sa null character at palitan ang bawat n ng isang kuwit sa pamamagitan ng paggamit ng unang paghahanap at palitan ang pattern. Dito, ginagamit ang ā€˜gā€™ sa buong mundo na paghahanap para sa n. Sa pangalawang paghahanap at palitan ang pattern, ang huling kuwit ay papalitan ng n.



$pusaMga kliyente.txt

$sed -Nga 's / n /, / g; s /, $ / n /'Mga kliyente.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos.





Halimbawa 2: Palitan ang n ng isang kuwit gamit ang a, b, $! at N

Maaaring magamit ang utos na `sed` upang mapalitan ang n ng isang kuwit sa pamamagitan ng paggamit a, b, N, at $! . Dito, sa ay ginagamit upang idugtong ang mga gawain, b ay ginagamit upang mai-sangay ang nilalaman, N ay ginagamit upang pumunta sa susunod na linya, at $! ay ginagamit upang maiwasan ang gawain ng kapalit na mailapat sa huling linya. Papalitan ng utos ang bawat isa n na may isang kuwit maliban sa huling linya.



$pusaMga kliyente.txt

$sed ': a; N; $! ba; s / n /, / g'Mga kliyente.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos.

Halimbawa 3: Palitan ang n ng isang kuwit gamit ang H, h, d, x at y

Kung nais mong palitan n) na may isang kuwit sa isang maliit na file, pagkatapos ay maaaring magamit ang sumusunod na `sed` na utos. Dito, H ay ginagamit upang idagdag ang huling linya sa hawak na teksto, ang 1h ay ginagamit upang kopyahin ang bawat linya ng file sa hawak na teksto mula sa unang linya, $! d ay ginagamit upang tanggalin ang lahat ng mga linya maliban sa huling linya, x ay ginagamit upang ipagpalit ang hawak na teksto at pattern space, at at ay ginagamit upang palitan ang bawat isa n sa may hawak na teksto na may kuwit.

$pusaMga kliyente.txt

$sed 'H; 1h; $! D; x; y / n /, /'Mga kliyente.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos.

Halimbawa 4: Palitan ang n ng isang kuwit gamit ang -n, H, h, g at p

Maaaring magamit ang utos na `sed` upang mapalitan n na may kuwit sa -n pagpipilian, na pumipigil sa awtomatikong pag-print. Tulad ng sa nakaraang halimbawa, H ay ginagamit dito upang idugtong ang huling linya sa hawak na teksto, 1h ay ginagamit upang kopyahin ang bawat linya ng file sa may hawak na teksto, $ tumutukoy sa huling linya ng file, g ay ginagamit upang makopya mula sa hawak na teksto, at p ginagamit upang mag-print.

$pusaMga kliyente.txt

$sed-n'H; 1h; ${g; s / n/, / g; p} 'Mga kliyente.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas.

Halimbawa 5: Palitan ang n ng isang kuwit na gumagamit ng H, x, p

H, x, at p naipaliwanag sa mga nakaraang halimbawa. Ang unang paghahanap at palitan ang expression ay papalit sa bawat isa n na may isang kuwit, at ang pangalawang paghahanap at palitan ang expression ay papalit sa isang kuwit sa simula ng isang linya na may isang puwang.

$pusaMga kliyente.txt

$sed-n'H; $ {x; s / n /, / g; s / ^, //; p;}'Mga kliyente.txt

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas.

Halimbawa 6: Palitan ang n ng isang kuwit gamit ang N at `cat`

Ginagamit ang utos na `cat` dito upang maipadala ang nilalaman ng file sa 'sed` na utos, at N ay ginagamit upang ilipat sa susunod na linya.

$pusaMga kliyente.txt

$pusaMga kliyente.txt| sed 'N; s / n /, /'

Ang sumusunod na output ay gagawin pagkatapos patakbuhin ang mga utos sa itaas.

Konklusyon

Maaaring kailanganin upang palitan ang n ng isang kuwit upang ilipat ang data mula sa isang format ng file patungo sa isa pa. Ang ganitong uri ng kapalit ay maaari ding gawin sa pamamagitan ng paggamit ng iba pang mga utos ng Linux. Maraming mga pagpipilian sa utos, tulad ng H, N, h, at x, ay maaaring magamit sa utos ng `sed` upang makumpleto ang gawaing ito. Ang tutorial na ito ay napupunta sa maraming mga paraan upang magamit ang utos na `sed` upang palitan ang n ng isang kuwit.