Hvordan erstatte Newline med komma ved hjelp av kommandoen `sed`

How Replace Newline With Comma Using Sed Command



Enhver karakter eller streng kan erstattes ved å bruke kommandoen `sed`. Noen ganger må vi erstatte nylinjetegnet ( n) i en fil med et komma. I denne artikkelen bruker vi kommandoen `sed` for å erstatte n med et komma.

Bruker `sed` til å erstatte n med komma

Mange problemer kan oppstå når n erstattes med komma. Som standard slutter hver linje med n når du oppretter en fil. Kommandoen `sed` kan enkelt dele seg på n og erstatte den nye linjen med et hvilket som helst tegn. En annen skilletegn kan brukes i stedet for n, men bare når GNU sed brukes. Når n mangler på den siste linjen i filen, kan GNU sed unngå å skrive ut n. Videre blir n vanligvis lagt til hver påfølgende utgang av `sed`.







Lag en fil

I denne artikkelen viser vi deg hvordan du bruker kommandoen `sed` til å erstatte n med komma. For å følge denne opplæringen, opprett en tekstfil med navnet Clients.txt med følgende tabellklientinformasjon.



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

Eksempel 1: Erstatt n med et komma med -z

Alternativet -z brukes til å konvertere n til nulltegnet ( 0). Innholdet i filen behandles som en enkelt linje hvis den ikke inneholder noen nulltegn. Kommandoen `sed` vil konvertere den nye linjen til null -tegnet og erstatte hver n med et komma ved å bruke det første søke- og erstatningsmønsteret. Her brukes 'g' for å søke globalt etter n. Med det andre søke- og erstatningsmønsteret vil det siste kommaet bli erstattet med n.



$kattClients.txt

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

Følgende utdata vil bli produsert etter at kommandoene er kjørt.





Eksempel 2: Erstatt n med komma med a, b, $! og N.

Kommandoen `sed` kan brukes til å erstatte n med et komma ved å bruke a, b, N og $! . Her, til brukes til å legge til oppgaver, b brukes til å forgrene innholdet, N brukes til å gå til neste linje, og $! brukes for å forhindre at erstatningsoppgaven brukes på den siste linjen. Kommandoen vil erstatte hver n med komma bortsett fra siste linje.



$kattClients.txt

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

Følgende utdata vil bli produsert etter at kommandoene er kjørt.

Eksempel 3: Erstatt n med komma med H, h, d, x og y

Hvis du vil bytte n) med komma i en liten fil, kan følgende `sed` -kommando brukes. Her, H brukes til å legge til den siste linjen i beholdningsteksten, 1h brukes til å kopiere hver linje i filen til beholdningsteksten fra den første linjen, $! d brukes til å slette alle linjene unntatt den siste linjen, x brukes til å utveksle beholdningstekst og mønsterrom, og og brukes til å erstatte hver n i holdeteksten med komma.

$kattClients.txt

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

Følgende utdata vil bli produsert etter at kommandoene er kjørt.

Eksempel 4: Erstatt n med komma med -n, H, h, g og p

Kommandoen `sed` kan brukes til å erstatte n med komma med -n alternativet, som forhindrer automatisk utskrift. Som i forrige eksempel, H brukes her for å legge til den siste linjen i beholdningsteksten, 1 t brukes til å kopiere hver linje i filen til beholdningsteksten, $ refererer til den siste linjen i filen, g brukes til å kopiere fra holdeteksten, og s brukes til å skrive ut.

$kattClients.txt

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

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor.

Eksempel 5: Erstatt n med komma med H, x, s

H, x og s har blitt forklart i tidligere eksempler. Det første søke- og erstatningsuttrykket vil erstatte hvert n med komma, og det andre søke- og erstatningsuttrykket vil erstatte et komma i begynnelsen av en linje med et mellomrom.

$kattClients.txt

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

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor.

Eksempel 6: Erstatt n med komma med N og `cat`

Kommandoen `cat` brukes her for å sende innholdet i filen til` sed` -kommandoen, og N brukes til å gå til neste linje.

$kattClients.txt

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

Følgende utdata vil bli produsert etter at du har kjørt kommandoene ovenfor.

Konklusjon

Det kan være nødvendig å erstatte n med et komma for å overføre data fra ett filformat til et annet. Denne typen erstatning kan også gjøres ved å bruke andre Linux -kommandoer. Mange kommandoalternativer, for eksempel H, N, h og x, kan brukes med kommandoen 'sed' for å fullføre denne oppgaven. Denne opplæringen går over flere måter å bruke kommandoen `sed` til å erstatte n med et komma.