Bash Fjern siste x tegn fra strengen

Bash Remove Last X Characters From String



Noen ganger må man slette bokstaver fra enten en streng. Akkurat hva saken kan være, inkluderer Linux flere innebygde, nyttige verktøy for å fjerne bokstaver fra en slik tekst i Bash. Denne artikkelen viser hvordan du sletter bokstaver fra en streng ved å bruke disse metodene. I dette innlegget ble instruksjonene kjørt på Ubuntu 20.04 Focal Fossa. De samme instruksjonene kan kjøres på alle Linux -systemer som har verktøyene nevnt ovenfor installert. For å utføre instruksjonene bruker vi den vanlige terminalen. Ctrl+Alt+T -snarveien åpner Terminal -verktøyet.

Metode 01: Substring Way

Vår første metode for å fjerne bokstaver eller tegn fra en streng er mer som å lage en delstreng fra en original. I mellomtiden er terminalen allerede åpnet; Vi lager en bash -fil for å legge til bash -koden. Slik at vi kan gjøre tegnfjerning eller lage substring i den. Så vi har brukt den innebygde berøringsinstruksjonen i skallet vårt for å lage en bash-fil.









Siden filen raskt er generert i hjemmemappen til Ubuntu 20.04, åpner du den i et redigeringsprogram for å redigere. Så vi velger GNU -editor for å åpne file.sh -dokumentet som nedenfor.







Kopier koden vist nedenfor i den. Denne koden inneholder bash -utvidelse i starten, og etter det har vi erklært en strengvariabel val med en strengverdi. På den andre linjen bruker vi ekkofrasen for å vise denne variabelen i terminalen. Den virkelige oppgaven begynner herfra. Vi har initialisert en variabel ny og tilordnet den en verdi som er en delstreng av den opprinnelige variabelen val. Vi har gjort det ved å nevne -14 i selene etter doble kolon. Dette forteller kompilatoren at den må fjerne de siste 14 bokstavene fra den opprinnelige strengen FirstWorldCountries. De resterende bokstavene blir lagret i variabelen ny. På den siste linjen har ekkoet blitt brukt til å skrive ut den nye variabelen ny.



Korrekt utførelse av en fil file.sh ved bruk av bash -kommandoen kommer ut som forventet. For det første viser den verdien av den første strengvariabelen val, og etter det viser den verdien av den nyopprettede strengen fra en første variabel i henhold til vist utgang.

Metode 02: Bruk av spesielle symboler

En annen enkel og enklere metode for å fjerne de siste bokstavene eller tegnene fra en hvilken som helst streng er via de spesielle symbolene eller tegnene, f.eks. Prosent- og spørsmålstegn. Så denne gangen bruker vi prosent og spørsmålstegn for å fjerne tegnene fra en hvilken som helst streng. Derfor har vi allerede åpnet den samme filen for å oppdatere bash -skriptet ved hjelp av en GNU Nano -editor. Samlet kode er den samme, men den variable delen er litt annerledes. Vi har brukt et prosenttegn for å la systemet vite at de nevnte antall spørsmålstegn representerer antall tegn fra en variabel som skal fjernes etter dette prosenttegnet. Du kan se at vi har lagt til 9 spørsmålstegn. Dette betyr at de siste 9 tegnene fra strengen FirstWorldCountries vil bli fjernet, og den gjenværende strengen vil være FirstWorld. Denne gjenværende strengen blir deretter lagret i en variabel ny.

Når vi har kjørt den oppdaterte bash -filen, kommer utgangen som forventet. Den viser den opprinnelige strengen fra den første variabelen og verdien av den andre variabelen, ny som er opprettet fra variabelen val.

Metode 03: Bruke Sed

Sed er et nyttig og effektivt verktøy for å endre tekstsekvenser. Det er et ikke-interaktivt utviklingsmiljø som lar deg jobbe med datainndata og gjøre enkle teksttransformasjoner. Du kan også bruke sed til å slette bokstaver fra tekster du ikke vil ha. Vi bruker en eksempelstreng og sender den inn i sed -kommandoen for illustrasjonsformål. Du kan slette et bestemt tegn fra en slags streng med sed. Så vi har brukt den enkle linjen i en streng i ekko -setningen. Vi har brukt sed for å fjerne bokstaven A fra den nevnte strengen. Sørg for å følge syntaksen ‘s/string_to_be_removed //’. Utgangen viser at bokstaven A er fjernet.

For å fjerne hele ordet Aqsa har vi nevnt det første og siste tegnet i et ord med prikkene inne for å representere manglende bokstaver. Utgangen viser strengen med fjerning av ordet Aqsa.

For å fjerne et hvilket som helst antall siste tegn fra en streng, nevner du antall prikker i henhold til kravet ditt før dollarsymbolet som vist.

Metode 04: Bruke Awk

Awk er et sofistikert skriptspråk som kan brukes til å matche mønstre og behandle tekster. Du kan bruke Awk til å skifte og endre input på en rekke forskjellige måter. Du kan også slette bokstaver fra strenger ved hjelp av awk. Awk virker litt annerledes enn sed. Denne gangen har vi endret strengen med Aqsa Yasin. Awk -funksjonen vil lage delstreng via submetoden og skrive den ut i terminalen. Funksjonslengden har blitt brukt til å demonstrere antall bokstaver fjernet fra den nevnte strengen. Her betyr lengde ($ 0) -5 å fjerne de fem siste tegnene i en streng, og de resterende vil være en del av en delstreng som skal skrives ut.

Vi har prøvd å fjerne de siste 9 tegnene fra en streng Aqsa Yasin og fått A som utgangsstrengen.

Metode 05: Bruke Cut

Cut ser ut til å være et kommandolinjeverktøy for å trekke ut et stykke tekst fra et slikt uttrykk eller dokument og skrive det ut til standard utdata. Denne operasjonen kan også brukes til å fjerne bokstaver fra en slags streng. Vi bruker et eksempelord og sender det til kuttinstruksjonen for testformål. Så vi har brukt Aqsa Yasin -setningen og sendt den til kuttforespørselen. Etter flagget –c har vi definert indeksområdet for en streng for å kutte tegnene fra en nevnt streng. Det viser tegnene fra indeks 1 til indeks 5. Indeks 5 har blitt ekskludert her. Utgangen viser de første 4 tegnene som Aqsa.

Denne gangen vil vi bruke kuttinstruksjonene annerledes. Vi har brukt rev -funksjonen for å reversere strengen. Etter omvendt av en streng, kutter vi det første tegnet fra en streng. Flagget -c2 betyr at vår delstreng vil være videre karakter 2. Etter det brukes reversfunksjonen igjen for å tilbakestille strengen. Så denne gangen fikk vi den originale strengen tilbake med fjerning av det siste tegnet.

For å fjerne de siste 7 tegnene, må du bare nevne -c7 -i klippekommandoen mens du også bruker reversfunksjonen.

Konklusjon:

Det er tid mer enn én metode for å gjøre en grunnleggende oppgave på Linux. På samme måte er det mulig å slette tegn fra en tekst. Denne artikkelen demonstrerte fem forskjellige metoder for å eliminere uønskede tegn ut av en streng, samt noen forekomster. Uansett hvilket verktøy du velger, er helt avhengig av ditt valg og, mer avgjørende, hva du vil oppnå.