BASH-programmering

Fjerner tegn fra String in Bash

Fjerner tegn fra String in Bash

Noen ganger kan det hende du må fjerne tegn fra en streng. Uansett årsak er, gir Linux deg forskjellige innebygde, praktiske verktøy som lar deg fjerne tegn fra en streng i Bash. Denne artikkelen viser deg hvordan du bruker disse verktøyene til å fjerne tegn fra en streng.

Artikkelen dekker hvordan du utfører følgende:

Kommandoene som vises i denne artikkelen ble utført i Ubuntu 20.04 Focal Fossa. De samme kommandoene kan også utføres på andre Linux-distribusjoner som har verktøyene ovenfor tilgjengelig. Vi bruker standard Terminal-applikasjon til å kjøre kommandoene. Du kan få tilgang til Terminal-applikasjonen ved å bruke hurtigtasten Ctrl + Alt + T.

Fjern tegn fra streng ved bruk av sed

Sed er et kraftig og praktisk verktøy som brukes til å redigere tekststrømmer. Det er en ikke-interaktiv tekstredigerer som lar deg utføre grunnleggende tekstmanipuleringer på inngangsstrømmer. Du kan også bruke sed for å fjerne uønskede tegn fra strengene.

For demonstrasjonsformål vil vi bruke en prøvestreng og deretter rør den til sed-kommandoen.

Fjern spesifikk karakter fra streng

Ved hjelp av sed kan du fjerne et bestemt tegn fra en streng. For eksempel for å fjerne “h” fra strengen “Hei, hvordan har du det?”Kommandoen ville være:

$ echo "hallo, hvordan har du det?"| sed 's / h //'

Dette fjerner bare den første forekomsten av 'h' i strengen.

For å fjerne alle forekomster av 'h' fra strengen, bruk følgende kommando:

$ echo "hallo, hvordan har du det?"| sed 's / h // g'

Hvor g står for global. Det vil fjerne alle forekomster av 'h' i strengen.

Fjern første tegn fra streng

For å fjerne det første tegnet fra strengen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| sed's / ^.// 'fil

Hvor (.) samsvarer med nøyaktig ett tegn og (^) samsvarer med hvilket som helst tegn i begynnelsen av strengen.

Fjern siste tegn fra streng

For å fjerne det siste tegnet fra strengen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| sed's /.$ // '

Hvor (.) samsvarer nøyaktig med et enkelt tegn og ($) samsvarer med hvilket som helst tegn på slutten av strengen.

Fjern første og siste tegn fra streng

For å fjerne det første og siste tegnet fra strengen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| sed's / ^.//; s /.$ // '

Fjern tegn fra streng ved hjelp av awk

Awk er et kraftig skriptspråk som brukes til mønstermatching, sammen med tekstbehandling. Awk lar deg filtrere og transformere tekst på forskjellige måter. Du kan også bruke awk for å fjerne tegn fra strengene.

For demonstrasjonsformål vil vi bruke en prøvestreng og deretter pipe den til kommandoen awk.

Fjern første tegn fra en streng

For å fjerne det første tegnet fra strengen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| awk 'utskriftssubstrat ($ 0, 2)'

Hvor ($ 0) er hele målstrengen og (2) er startposisjonen til tegnet. Ovennevnte kommando fjerner det første tegnet, 'h', 'tegnnummer' 1 ', og returnerer målstrengen som begynner med det andre tegnet,' e.'

Fjern de to første tegnene fra strengen

Du kan også fjerne et bestemt antall tegn fra begynnelsen av en streng. For eksempel for å fjerne de to første tegnene fra strengen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| awk 'print substr ($ 0, 3)'

Ovennevnte kommando fjerner de to første tegnene, 'han' eller tegnnummer '1 og 2', og returnerer målstrengen som begynner med tegnnummeret '3' eller 'l.'

Fjern siste tegn fra streng

For å fjerne det siste tegnet fra “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| awk 'print substr ($ 0, 1, length ($ 0) -1)'

Hvor lengde ($ 0) -1 betyr å trekke fra '1'fra den totale tegnlengden.

Kommandoen ovenfor vil skrive ut strengen som begynner med tegnnummer '1' opp til lengde ($ 0) -1 for å fjerne den siste karakteren.

Det er '19'tegn (inkludert mellomrom) i strengen ovenfor. Kommandoen fungerer ved å skrive ut alle tegn, startende med tegn '1'og opp til karakter'18,'mens du fjerner det siste tegnet'19.'

Fjern de to siste tegnene fra streng

For å fjerne de to siste tegnene fra “Hei, hvordan har du det?”Kommandoen ville være:

$ echo "hallo, hvordan har du det?"| awk 'utskriftssubstrat ($ 0, 1, lengde ($ 0) -2)'

Hvor lengde ($ 0) -2 betyr å trekke fra '2'fra den totale tegnlengden.

Kommandoen ovenfor vil skrive ut strengen, begynnende med tegnnummer '1'og opp til tegnnummer'lengde ($ 0) -2,'for å fjerne de to siste tegnene i strengen.

Fjern både første og siste tegn fra streng

For å fjerne både første og siste tegn fra strengen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| awk 'utskriftssubstrat ($ 0, 2, lengde ($ 0) - 2)'

Hvor lengde ($ 0) -2 betyr å trekke fra '2'fra den totale tegnlengden.

Kommandoen ovenfor vil skrive ut strengen, begynnende med tegnnummer '2'opp til karakternummer'lengde ($ 0) -2,'for å fjerne det første og siste tegnet.

Fjern tegnet fra strengen ved hjelp av kuttet

Cut er et kommandolinjeverktøy som ofte brukes til å trekke ut en del tekst fra en streng eller fil og skrive ut resultatet til en standard utgang. Du kan også bruke denne kommandoen for å fjerne tegn fra en streng.

For demonstrasjonsformål vil vi bruke en prøvestreng og deretter rør den til klippekommandoen.

Fjern første tegn fra streng

For å fjerne det første tegnet fra strengen, “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| klipp -c 2-

Denne kommandoen skriver ut strengen, begynner med det andre tegnet, mens det første tegnet fjernes.

Fjern de første fire tegnene fra streng

For å fjerne de fire første tegnene fra strengen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| klipp -c 5-

Denne kommandoen vil skrive ut strengen, fra det femte tegnet, mens de fire første tegnene fjernes.

Skriv ut streng mellom 2. og 5. tegn

Å skrive ut strengen “Hei, hvordan har du det?” mellom andre og femte tegn, kommandoen ville være:

$ echo "hallo, hvordan har du det?"| kutt -c 2-5

Denne kommandoen skriver ut strengen, begynner fra det andre tegnet og opp til det femte tegnet, mens du fjerner de gjenværende begynnende og slutttegnene.

Fjern siste tegn fra streng

For å fjerne det siste tegnet fra strengen “Hei, hvordan har du det?” bruke kutte opp kommando med rev, som følger:

$ echo "hallo, hvordan har du det?"| rev | klipp -c2- | rev

Denne kommandoen fungerer ved først å snu strengen, deretter klippe det første tegnet og til slutt snu den igjen for å gi deg ønsket utgang.

Fjern de siste fire tegnene fra streng

For å fjerne de fire siste tegnene fra linjen “Hei, hvordan har du det?” kommandoen ville være:

$ echo "hallo, hvordan har du det?"| rev | klipp -c5- | rev

Denne kommandoen fungerer ved først å snu strengen, deretter klippe de fire første tegnene, og deretter reversere den igjen for å gi deg ønsket utgang.

Fjern første og siste tegn fra streng

For å fjerne de første og siste tegnene fra strengen “Hei, hvordan har du det?” bruke kutte opp kommando med rev, som følger:

$ echo "hei verden!"| klipp -c2- | rev | klipp -c2- | rev

Denne kommandoen fungerer ved å klippe det første tegnet, deretter reversere strengen og klippe det første tegnet, og deretter reversere den igjen for å gi deg ønsket utgang.

Fjern tegn fra streng ved hjelp av tr

Tr-kommandoen (forkortelse for translate) brukes til å oversette, klemme og slette tegn fra en streng. Du kan også bruke tr til å fjerne tegn fra en streng.

For demonstrasjonsformål vil vi bruke en prøvestreng og deretter rør den til tr-kommandoen.

Fjern alle forekomster av karakter

Ved hjelp av tr-kommandoen kan du fjerne alle forekomster av små eller store bokstaver fra strengen. For eksempel, for å fjerne alle forekomster av små bokstaver 'h' fra strengen, vil kommandoen være:

$ echo "Hei, hvordan har du det?"| tr -d h

På samme måte, for å fjerne alle forekomster av store bokstaver 'H' fra strengen, vil kommandoen være:

$ echo "Hei, hvordan har du det?"| tr -d H

Du kan også bruke tolket sekvens for å fjerne små eller store bokstaver:

$ echo "Hei, hvordan har du det?"| tr -d [: øvre:]

$ echo "HELLO, hvordan har du det?"| tr -d [: lavere:]

Fjern alle forekomster av små og store bokstaver

Du kan også fjerne alle forekomster av både små og store bokstaver fra en streng. For eksempel vil følgende kommando fjerne alle forekomster av tegnet 'h', både små og store bokstaver.

$ echo "Hei, hvordan har du det?"| tr -d 'hH'

Fjern alle forekomster av tegn i et bestemt område

For å fjerne alle forekomster av tegn fra en streng i det spesifikke området 'd-h', vil kommandoen være:

$ echo "hallo, hvordan har du det?"| tr -d 'd-h'

Denne kommandoen vil fjerne alle tegn i området 'd-h' (d, e, f, g, h) i strengen.

Konklusjon

I Linux vil det alltid være mer enn én måte å oppnå en enkel jobb på. Det samme gjelder når du fjerner tegn fra en streng. Denne artikkelen viste deg fire forskjellige måter å gjøre det på, sammen med noen få eksempler for å fjerne uønskede tegn fra en streng. Å bestemme hvilket verktøy du vil bruke, avhenger av dine preferanser og, enda viktigere, av hva du vil oppnå.

Mus Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Markøren hopper eller beveger seg tilfeldig mens du skriver inn Windows 10
Hvis du finner ut at musemarkøren hopper eller beveger seg alene, automatisk, tilfeldig mens du skriver inn Windows-bærbar PC eller datamaskin, kan no...
Mus Hvordan reversere rulle retning for mus og styreplater i Windows 10
Hvordan reversere rulle retning for mus og styreplater i Windows 10
Mus og Pekeplates gjør ikke bare databehandling enkelt, men mer effektivt og mindre tidkrevende. Vi kan ikke forestille oss et liv uten disse enhetene...
Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...