Bash Fjern sidste x tegn fra streng

Bash Remove Last X Characters From String



Man skal muligvis slette bogstaver fra enten en streng nogle gange. Lige hvad sagen kan være, inkluderer Linux flere indbyggede, nyttige værktøjer til fjernelse af bogstaver fra en sådan tekst i Bash. Denne artikel viser, hvordan du sletter bogstaver fra enten en streng ved hjælp af disse metoder. I dette indlæg blev instruktionerne kørt på Ubuntu 20.04 Focal Fossa. De samme instruktioner kan køres på ethvert Linux -system, der har de ovennævnte værktøjer installeret. For at udføre instruktionerne bruger vi den sædvanlige terminal. Ctrl+Alt+T genvejen åbner terminalværktøjet.

Metode 01: Substring måde

Vores første metode til at fjerne bogstaver eller tegn fra en streng ligner mere at oprette en delstreng fra en original. I mellemtiden er terminalen allerede åbnet; vi laver en bash -fil for at tilføje vores bash -kode. Så vi kan foretage tegnfjerning eller substringfremstilling i den. Så vi har brugt den indbyggede berøringsinstruktion i vores shell til at oprette en bash-fil.









Da filen hurtigt er blevet genereret i hjemmemappen på Ubuntu 20.04, skal du åbne den i en eller anden editor for at redigere. Så vi vælger GNU -editor for at åbne file.sh -dokumentet som nedenfor.







Kopier koden vist herunder. Denne kode indeholder bash -udvidelse i starten, og efter det har vi erklæret en strengvariabel val med en strengværdi. På den anden linje bruger vi ekkosætningen til at vise denne variabel i terminalen. Den virkelige opgave begynder herfra. Vi har initialiseret en variabel ny og tildeler den en værdi, som er en delstreng i den oprindelige variabel val. Vi har gjort det ved at nævne -14 i selerne efter dobbelt kolon. Dette fortæller kompilatoren, at den skal fjerne de sidste 14 bogstaver fra den originale streng FirstWorldCountries. De resterende bogstaver gemmes i variablen ny. I den sidste linje er ekkoet blevet brugt til at udskrive den nye variabel ny.



Den korrekte udførelse af en fil file.sh ved hjælp af kommandoen bash kommer ud som forventet. For det første viser den værdien af ​​den første strengvariabel val, og derefter viser den værdien af ​​den nyoprettede streng fra en første variabel i henhold til vist output.

Metode 02: Brug af særlige symboler

En anden enkel og lettere metode til at fjerne de sidste bogstaver eller tegn fra enhver streng er via de særlige symboler eller tegn, f.eks. Procent- og spørgsmålstegn. Så denne gang vil vi bruge procent og spørgsmålstegn til at fjerne tegnene fra enhver streng. Derfor har vi allerede åbnet den samme fil for at opdatere bash -scriptet ved hjælp af en GNU Nano -editor. Samlet kode er den samme, men den variable nye del er lidt anderledes. Vi har brugt et procenttegn for at lade systemet vide, at de nævnte antal spørgsmålstegn repræsenterer antallet af tegn fra en variabel, der skal fjernes efter dette procenttegn. Du kan se, at vi har tilføjet 9 spørgsmålstegn. Det betyder, at de sidste 9 tegn fra strengen FirstWorldCountries vil blive fjernet, og den resterende streng vil være FirstWorld. Denne resterende streng gemmes derefter i en ny variabel.

Når vi har eksekveret den opdaterede bash -fil, kommer output som forventet. Det viser den originale streng fra den første variabel og værdien af ​​den anden variabel, ny, der er blevet oprettet ud fra variablen val.

Metode 03: Brug af Sed

Sed er et nyttigt og effektivt værktøj til ændring af tekstsekvenser. Det er et ikke-interaktivt udviklingsmiljø, der lader dig arbejde med datainput og foretage enkle tekstforandringer. Du kan også bruge sed til at slette bogstaver fra tekster, du ikke ønsker. Vi bruger en eksempelstreng og leder den ind i sed -kommandoen til illustration. Du kan slette et bestemt tegn fra en slags streng med sed. Så vi har brugt den enkle linje af en streng i ekko -sætningen. Vi har brugt sed til at fjerne bogstavet A fra den nævnte streng. Sørg for at følge syntaksen ‘s/string_to_be_removed //’. Outputtet viser, at bogstavet A er blevet fjernet.

For at fjerne hele ordet Aqsa har vi nævnt det første og sidste tegn i et ord med prikkerne inden for at repræsentere manglende bogstaver. Outputtet viser strengen med fjernelsen af ​​ordet Aqsa.

For at fjerne et hvilket som helst antal sidste tegn fra en streng skal du angive antallet af prikker i henhold til dit krav før dollarsymbolet som vist.

Metode 04: Brug af Awk

Awk er et sofistikeret scriptsprog, der kan bruges til at matche mønstre og behandle tekster. Du kan bruge Awk til at skifte og ændre input på en række forskellige måder. Du kan også slette bogstaver fra strenge ved hjælp af awk. Awk virker lidt anderledes end sed. Denne gang har vi ændret strengen med Aqsa Yasin. Awk -funktionen vil lave substring via submetoden og udskrive den i terminalen. Funktionslængden er blevet brugt til at demonstrere antallet af bogstaver fjernet fra den nævnte streng. Her betyder længde ($ 0) -5 at fjerne de sidste 5 tegn i en streng, og de resterende vil være en del af en delstreng, der skal udskrives.

Vi har forsøgt at fjerne de sidste 9 tegn fra en streng Aqsa Yasin og fik A som output -understreng.

Metode 05: Brug af Cut

Cut synes at være et kommandolinjeværktøj til at udtrække et stykke tekst fra en sådan sætning eller et dokument og udskrive det til standardoutput. Denne operation kan også bruges til at fjerne bogstaver fra en slags streng. Vi bruger en eksempelfrase og sender den til cut -instruktionen til testformål. Så vi har brugt Aqsa Yasin -sætningen og videregivet den til cut -forespørgslen. Efter flag –c har vi defineret rækkevidden af ​​indekser for en streng til at skære tegnene fra en nævnt streng. Det viser tegnene fra indeks 1 til indeks 5. Indeks 5 er udelukket her. Outputtet viser de første 4 tegn som Aqsa.

Denne gang vil vi bruge snitinstruktionen anderledes. Vi har brugt rev -funktionen til at vende strengen. Efter bagsiden af ​​en streng skærer vi det første tegn fra en streng. Flag -c2 -betyder, at vores delstreng vil være videre karakter 2. Derefter bruges omvendt funktion igen til at vende strengen tilbage. Så denne gang fik vi den originale streng tilbage med fjernelsen af ​​det sidste tegn.

For at fjerne de sidste 7 tegn skal du blot nævne -c7 -i kommandoen cut, mens du også bruger omvendt funktion.

Konklusion:

Der er tid mere end én metode til at udføre en grundlæggende opgave på Linux. På samme måde er det muligt at slette tegn ud af en tekst. Denne artikel demonstrerede fem forskellige metoder til at fjerne uønskede tegn ud af en streng, samt nogle eksempler. Uanset hvilket værktøj du vælger, er det helt afhængigt af dit valg og, mere afgørende, hvad du gerne vil opnå.