Bash Ta bort sista x tecken från sträng

Bash Remove Last X Characters From String



Man kan behöva ta bort bokstäver från antingen en sträng ibland. Precis vad fallet kan vara, innehåller Linux flera inbyggda, användbara verktyg för att ta bort bokstäver från en sådan text i Bash. Den här artikeln visar hur du tar bort bokstäver från antingen en sträng med dessa metoder. I det här inlägget kördes instruktionerna på Ubuntu 20.04 Focal Fossa. Samma instruktion kan köras på alla Linux -system som har verktygen som nämns ovan installerade. För att utföra instruktionerna använder vi den vanliga terminalen. Ctrl+Alt+T genväg öppnar terminalverktyget.

Metod 01: Substring Way

Vår första metod för att ta bort bokstäver eller tecken från en sträng är mer som att skapa en delsträng från en original. Samtidigt har terminalen redan öppnats; vi kommer att göra en bash -fil för att lägga till vår bash -kod. Så att vi kan ta bort tecken eller skapa understrängar i den. Så, vi har använt den inbyggda beröringsinstruktionen i vårt skal för att skapa en bash-fil.









Eftersom filen snabbt har genererats i hemmappen för Ubuntu 20.04 öppnar du den i någon redigerare för att redigera. Så vi väljer GNU -editor för att öppna file.sh -dokumentet enligt nedan.







Kopiera koden som visas nedan i den. Denna kod innehåller bash -tillägg i början, och efter det har vi deklarerat en strängvariabel val med ett strängvärde. På den andra raden använder vi ekofrasen för att visa denna variabel i terminalen. Den verkliga uppgiften börjar härifrån. Vi har initialiserat en ny variabel och tilldelat den ett värde som är en delsträng av den ursprungliga variabeln val. Vi har gjort det genom att nämna -14 i hängslen efter dubbla kolon. Detta berättar kompilatorn att den måste ta bort de sista 14 bokstäverna från den ursprungliga strängen FirstWorldCountries. De återstående bokstäverna sparas i variabeln ny. På sista raden har ekot använts för att skriva ut den nya variabeln ny.



Korrekt körning av en fil file.sh med bash -kommandot kommer ut som förväntat. För det första visar det värdet för den första strängvariabeln val, och därefter visar den värdet för den nyskapade strängen från en första variabel enligt visad utdata.

Metod 02: Använda speciella symboler

En annan enkel och lättare metod för att ta bort de sista bokstäverna eller tecknen från valfri sträng är via specialsymbolerna eller tecknen, t.ex. procent- och frågetecken. Så den här gången kommer vi att använda procent och frågetecken för att ta bort tecknen från valfri sträng. Därför har vi redan öppnat samma fil för att uppdatera bash -skriptet med en GNU Nano -editor. Övergripande kod är densamma, men den variabla nya delen är lite annorlunda. Vi har använt ett procenttecken för att låta systemet veta att de nämnda antalet frågetecken representerar antalet tecken från en variabel val som ska tas bort efter detta procenttecken. Du kan se att vi har lagt till 9 frågetecken symboler. Det betyder att de sista nio tecknen från strängen FirstWorldCountries kommer att tas bort, och den återstående strängen kommer att vara FirstWorld. Den återstående strängen sparas sedan i en ny variabel.

När vi har kört den uppdaterade bash -filen kommer utmatningen som förväntat. Den visar den ursprungliga strängen från den första variabeln och värdet på den andra variabeln, ny som har skapats från variabeln val.

Metod 03: Använda Sed

Sed är ett användbart och effektivt verktyg för att ändra textsekvenser. Det är en icke-interaktiv utvecklingsmiljö som låter dig arbeta med datainmatning och göra enkla textomvandlingar. Du kan också använda sed för att radera bokstäver från texter som du inte vill ha. Vi använder en exempelsträng och dirigerar den till sed -kommandot för illustration. Du kan ta bort ett visst tecken från någon form av sträng med sed. Så, vi har använt den enkla raden i en sträng inom eko ​​-satsen. Vi har använt sed för att ta bort bokstaven A från den nämnda strängen. Se till att följa syntaxen ‘s/string_to_be_removed //’. Utmatningen visar att bokstaven A har tagits bort.

För att ta bort hela ordet Aqsa har vi nämnt det första och sista tecknet i ett ord med punkterna inuti för att representera saknade bokstäver. Utdata visar strängen med borttagningen av ordet Aqsa.

För att ta bort ett antal sista tecken från en sträng, ange antalet punkter enligt ditt krav före dollarsymbolen som visas.

Metod 04: Använda Awk

Awk är ett sofistikerat skriptspråk som kan användas för att matcha mönster och bearbeta texter. Du kan använda Awk för att flytta och ändra inmatning på olika sätt. Du kan också radera bokstäver från strängar med hjälp av awk. Awk verkar lite annorlunda än sed. Den här gången har vi bytt sträng med Aqsa Yasin. Awk -funktionen gör substring via submetoden och skriver ut den i terminalen. Funktionslängden har använts för att visa antalet bokstäver som tagits bort från den nämnda strängen. Här betyder längd ($ 0) -5 att ta bort de sista 5 tecknen i en sträng, och de återstående kommer att vara en del av en delsträng som ska skrivas ut.

Vi har försökt ta bort de senaste 9 tecknen från en sträng Aqsa Yasin och fick A som utdatasträng.

Metod 05: Använda Cut

Cut verkar vara ett kommandoradsverktyg för att extrahera en textbit från en sådan fras eller ett dokument och skriva ut den till standardutmatning. Denna operation kan också användas för att ta bort bokstäver från någon form av sträng. Vi använder en exempelfras och skickar den till cut -instruktionen för teständamål. Så vi har använt Aqsa Yasin -frasen och skickat den till cut -frågan. Efter flaggan –c har vi definierat indexintervallet för en sträng för att klippa tecknen från en nämnd sträng. Det visar tecknen från index 1 till index 5. Index 5 har uteslutits här. Utmatningen visar de första 4 tecknen som Aqsa.

Den här gången kommer vi att använda klippinstruktionen annorlunda. Vi har använt rev -funktionen för att vända strängen. Efter omvända strängen kommer vi att klippa det första tecknet från en sträng. Flaggan -c2 betyder att vår delsträng kommer att vara vidare tecken 2. Efter det används omvänd funktion igen för att återställa strängen. Så den här gången fick vi tillbaka den ursprungliga strängen med borttagningen av det sista tecknet.

För att ta bort de 7 senaste tecknen måste du bara nämna -c7 -i klipp -kommandot medan du använder omvänd funktion också.

Slutsats:

Det finns mer än en metod för att utföra en grundläggande uppgift på Linux. På samma sätt är det möjligt att radera tecken ur en text. Den här artikeln visade fem olika metoder för att eliminera oönskade tecken ur en sträng, liksom några instanser. Vilket verktyg du än väljer är helt beroende av ditt val och, mer avgörande, vad du vill uppnå.