Ethvert tegn eller streng kan erstattes ved å bruke kommandoen 'sed'. Noen ganger må vi erstatte det nye linjetegnet (\ n) i en fil med et komma. I denne artikkelen bruker vi kommandoen 'sed' til å erstatte \ n med et komma.
Bruker 'sed' for å erstatte \ n med komma
Mange problemer kan oppstå når du erstatter \ n med et komma. Som standard slutter hver linje med \ n når du oppretter en fil. Kommandoen 'sed' kan enkelt deles på \ n og erstatte den nye linjen med hvilket som helst tegn. En annen skilletegn kan brukes i stedet for \ n, men bare når GNU sed brukes. Når \ n mangler i den siste linjen i filen, kan GNU sed unngå utskrift \ n. Videre blir \ n vanligvis lagt til hver påfølgende utgang av 'sed'.
Lag en fil
I denne artikkelen vil vi vise deg hvordan du bruker kommandoen 'sed' for å erstatte \ n med et komma. For å følge denne veiledningen, opprett en tekstfil med navnet Kunder.tekst med følgende tabellinformasjon om klienten.
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 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' konverterer den nye linjen til nulltegnet og erstatter hver \ n med et komma ved å bruke det første mønsteret for søk og erstat. Her brukes 'g' til å søke globalt etter \ n. Med det andre mønsteret for søk og erstatning vil det siste kommaet bli erstattet med \ n.
$ cat klienter.tekst$ sed -z 's / \ n /, / g; s /, $ / \ n /' Klienter.tekst
Følgende utdata blir produsert etter kjøring av kommandoene.
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, en brukes til å legge til oppgaver, b brukes til å forgrense innholdet, N brukes til å gå til neste linje, og $! brukes til å forhindre at erstatningsoppgaven blir brukt på den siste linjen. Kommandoen erstatter hver \ n med komma unntatt siste linje.
$ cat klienter.tekst$ sed ': a; N; $!ba; s / \ n /, / g 'Kunder.tekst
Følgende utdata blir produsert etter kjøring av kommandoene.
Eksempel 3: Erstatt \ n med komma ved hjelp av H, h, d, x og y
Hvis du vil erstatte \ n) med komma i en liten fil, kan følgende 'sed' kommando brukes. Her, H brukes til å legge den siste linjen til holdeteksten, 1t brukes til å kopiere hver linje i filen til holdeteksten fra første linje, $!d brukes til å slette alle linjer bortsett fra den siste linjen, x brukes til å utveksle holdteksten og mønsterområdet, og y brukes til å erstatte hver \ n i holdeteksten med komma.
$ cat klienter.tekst$ sed 'H; 1t; $!d; x; y / \ n /, / 'Klienter.tekst
Følgende utdata blir produsert etter kjøring av kommandoene.
Eksempel 4: Erstatt \ n med komma med -n, H, h, g og p
Kommandoen 'sed' kan brukes til å erstatte \ n med komma med -n som forhindrer automatisk utskrift. Som i forrige eksempel, H brukes her for å legge til den siste linjen i holdeteksten, 1t brukes til å kopiere hver linje i filen til holdteksten, $ refererer til den siste linjen i filen, g brukes til å kopiere fra lagringsteksten, og s brukes til å skrive ut.
$ cat klienter.tekst$ sed -n "H; 1h; \ $ g; s / \ n /, / g; p" Klienter.tekst
Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor.
Eksempel 5: Erstatt \ n med komma ved hjelp av H, x, p
H, x og p har blitt forklart i tidligere eksempler. Det første søke- og erstatningsuttrykket erstatter hvert \ n med komma, og det andre søke- og erstatningsuttrykket erstatter et komma i begynnelsen av en linje med et mellomrom.
$ cat klienter.tekst$ sed -n 'H; $ x; s / \ n /, / g; s / ^, //; p;' Klienter.tekst
Følgende utdata blir produsert etter å ha kjørt kommandoene ovenfor.
Eksempel 6: Erstatt \ n med komma med N og 'cat'
Kommandoen 'cat' brukes her for å sende innholdet av filen til 'sed' -kommandoen, og N brukes til å gå til neste linje.
$ cat klienter.tekst$ cat klienter.txt | sed 'N; s / \ n /, /'
Følgende utdata blir produsert etter å ha 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, som 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' for å erstatte \ n med et komma.