Så här ersätter du Newline med kommatecken med kommandot 'sed'

How Replace Newline With Comma Using Sed Command



Alla tecken eller strängar kan ersättas med kommandot `sed`. Ibland måste vi ersätta nyradstecknet ( n) i en fil med ett komma. I den här artikeln använder vi kommandot 'sed' för att ersätta n med ett kommatecken.

Använda 'sed' för att ersätta n med ett komma

Många problem kan uppstå när n ersätts med ett komma. Som standard slutar varje rad med n när du skapar en fil. Kommandot `sed` kan enkelt delas på n och ersätta den nya raden med valfritt tecken. En annan avgränsare kan användas istället för n, men bara när GNU sed används. När n saknas i den sista raden i filen kan GNU sed undvika att skriva ut n. Dessutom läggs vanligtvis n till varje på varandra följande utmatning av 'sed'.







Skapa en fil

I den här artikeln kommer vi att visa dig hur du använder kommandot `sed` för att ersätta n med ett kommatecken. För att följa med denna handledning, skapa en textfil med namnet Clients.txt med följande tabellklientinformation.



ID namn E-post Telefon
c01 Md. Rakib [e -postskyddad] 01856233238
c02 Meher Afroze [e -postskyddad] 01733536342
c03 Fakrul Ahsan [e -postskyddad] 01934737248
c04 Helal Uddin [e -postskyddad] 01534895898
c05 Nusrat Jahan [e -postskyddad] 01866345254

Exempel 1: Ersätt n med ett kommatecken med -z

Alternativet -z används för att konvertera n till nulltecknet ( 0). Filens innehåll behandlas som en enda rad om den inte innehåller några nulltecken. Kommandot `sed` kommer att konvertera den nya raden till noll -tecknet och ersätta varje n med ett kommatecken med det första sök- och ersättningsmönstret. Här används 'g' för att globalt söka efter n. Med det andra sök- och ersättningsmönstret ersätts det sista kommat med n.



$kattClients.txt

$sed -Med 's/ n/,/g; s/, $/ n/'Clients.txt

Följande utdata kommer att skapas efter att kommandona har körts.





Exempel 2: Ersätt n med ett kommatecken med a, b, $! och n

Kommandot `sed` kan användas för att ersätta n med ett kommatecken med a, b, N och $! . Här, till används för att lägga till uppgifter, b används för att förgrena innehållet, N används för att gå till nästa rad, och $! används för att förhindra att ersättningsuppgiften tillämpas på den sista raden. Kommandot kommer att ersätta varje n med komma utom den sista raden.



$kattClients.txt

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

Följande utdata kommer att skapas efter att kommandona har körts.

Exempel 3: Ersätt n med ett kommatecken med H, h, d, x och y

Om du vill byta ut n) med komma i en liten fil, kan följande kommando `sed` användas. Här, H används för att lägga till den sista raden i innehavstexten, 1h används för att kopiera varje rad i filen till innehavstexten från den första raden, $! d används för att radera alla rader utom den sista raden, x används för att utbyta innehavstext och mönsterutrymme, och och används för att ersätta varje n i texten med kommatecken.

$kattClients.txt

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

Följande utdata kommer att skapas efter att kommandona har körts.

Exempel 4: Ersätt n med ett kommatecken med -n, H, h, g och p

Kommandot `sed` kan användas för att ersätta n med komma med -n som förhindrar automatisk utskrift. Som i föregående exempel, H används här för att lägga till den sista raden i texten, 1h används för att kopiera varje rad i filen till innehavstexten, $ refererar till den sista raden i filen, g används för att kopiera från innehavstexten och sid används för att skriva ut.

$kattClients.txt

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

Följande utdata kommer att produceras efter att ha kört ovanstående kommandon.

Exempel 5: Ersätt n med ett kommatecken med H, x, s

H, x och p har förklarats i tidigare exempel. Det första sök- och ersättningsuttrycket kommer att ersätta varje n med ett komma, och det andra sök- och ersättningsuttrycket kommer att ersätta ett komma i början av en rad med ett mellanslag.

$kattClients.txt

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

Följande utdata kommer att produceras efter att ha kört ovanstående kommandon.

Exempel 6: Ersätt n med ett kommatecken med N och 'cat'

Kommandot `cat` används här för att skicka filens innehåll till` sed` -kommandot och N används för att gå till nästa rad.

$kattClients.txt

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

Följande utdata kommer att produceras efter att ha kört ovanstående kommandon.

Slutsats

Det kan vara nödvändigt att ersätta n med ett komma för att överföra data från ett filformat till ett annat. Denna typ av ersättning kan också göras med andra Linux -kommandon. Många kommandoalternativ, till exempel H, N, h och x, kan användas med kommandot 'sed' för att slutföra denna uppgift. Denna handledning går igenom flera sätt att använda kommandot 'sed' för att ersätta n med ett kommatecken.