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.