Bash Laatste x tekens uit string verwijderen

Bash Remove Last X Characters From String



Het kan zijn dat u soms letters uit een string moet verwijderen. Wat het geval ook is, Linux bevat verschillende ingebouwde, handige tools voor het verwijderen van letters uit zo'n tekst in Bash. Dit artikel laat zien hoe u met deze methoden letters uit een tekenreeks kunt verwijderen. In dit bericht werden de instructies uitgevoerd op Ubuntu 20.04 Focal Fossa. Dezelfde instructies kunnen worden uitgevoerd op elk Linux-systeem waarop de hierboven genoemde hulpprogramma's zijn geïnstalleerd. Om de instructies uit te voeren, gebruiken we de gebruikelijke Terminal. De sneltoets Ctrl+Alt+T opent de Terminal-tool.

Methode 01: Substring-manier

Onze eerste methode om letters of tekens uit een tekenreeks te verwijderen, lijkt meer op het maken van een subtekenreeks van een originele. Inmiddels is de terminal al geopend; we zullen een bash-bestand maken om onze bash-code toe te voegen. Zodat we het verwijderen van tekens of het maken van substrings erin kunnen doen. We hebben dus de ingebouwde aanraakinstructie in onze shell gebruikt om een ​​bash-bestand te maken.









Aangezien het bestand snel is gegenereerd in de thuismap van Ubuntu 20.04, kunt u het in een of andere editor openen om het te bewerken. We kiezen dus voor de GNU-editor om het file.sh-document te openen zoals hieronder.







Kopieer de onderstaande code erin. Deze code bevat aan het begin bash-extensie en daarna hebben we een tekenreeksvariabele val gedeclareerd met een tekenreekswaarde. Op de andere regel gebruiken we de echo-frase om deze variabele in de terminal weer te geven. De echte taak begint vanaf hier. We hebben een variabele nieuw geïnitialiseerd en er een waarde aan toegewezen die een substring is van de oorspronkelijke variabele val. We hebben dit gedaan door -14 tussen de accolades te vermelden na dubbele dubbele punten. Dit vertelt de compiler dat het de laatste 14 letters van de originele string FirstWorldCountries moet verwijderen. De overige letters worden opgeslagen in de variabele nieuw. In de laatste regel is de echo gebruikt om de nieuwe variabele nieuw af te drukken.



De juiste uitvoering van een bestand file.sh met behulp van de bash-opdracht komt uit zoals verwacht. Ten eerste toont het de waarde van de eerste stringvariabele val, en daarna toont het de waarde van de nieuw gecreëerde string van een eerste variabele volgens de getoonde uitvoer.

Methode 02: Speciale symbolen gebruiken

Een andere eenvoudige en gemakkelijkere methode om de laatste letters of tekens uit een tekenreeks te verwijderen, is via de speciale symbolen of tekens, bijvoorbeeld percentage- en vraagtekensymbolen. Dus deze keer zullen we percentage en vraagteken gebruiken om de tekens uit elke tekenreeks te verwijderen. Daarom hebben we hetzelfde bestand al geopend om het bash-script bij te werken met behulp van een GNU Nano-editor. De algehele code is hetzelfde, maar het variabele nieuwe deel is een beetje anders. We hebben een percentageteken gebruikt om het systeem te laten weten dat de genoemde aantallen vraagtekens het aantal tekens van een variabele waarde vertegenwoordigen dat na dit percentageteken moet worden verwijderd. U kunt zien dat we 9 vraagtekensymbolen hebben toegevoegd. Dit betekent dat de laatste 9 tekens van de tekenreeks FirstWorldCountries worden verwijderd en dat de resterende tekenreeks FirstWorld is. Deze resterende tekenreeks wordt vervolgens opgeslagen in een nieuwe variabele.

Wanneer we het bijgewerkte bash-bestand hebben uitgevoerd, komt de uitvoer zoals verwacht. Het toont de originele tekenreeks van de eerste variabele en de waarde van de tweede variabele, nieuw die is gemaakt op basis van de variabele val.

Methode 03: Sed gebruiken

Sed is een handig en effectief hulpmiddel voor het wijzigen van tekstreeksen. Dat is een niet-interactieve ontwikkelomgeving waarin u kunt werken met gegevensinvoer en eenvoudige teksttransformaties kunt uitvoeren. U kunt sed ook gebruiken om letters te verwijderen uit teksten die u niet wilt. We zullen een voorbeeldreeks gebruiken en deze ter illustratie naar de opdracht sed leiden. U kunt een bepaald teken uit een soort string verwijderen met sed. We hebben dus de eenvoudige regel van een string gebruikt in de echo-instructie. We hebben sed gebruikt om de letter A uit de genoemde string te verwijderen. Zorg ervoor dat u de syntaxis 's/string_to_be_removed//' volgt. De uitvoer toont dat de letter A is verwijderd.

Om het hele woord Aqsa te verwijderen, hebben we het eerste en laatste teken van een woord genoemd met de stippen erin om ontbrekende letters aan te geven. De uitvoer toont de string met de verwijdering van het woord Aqsa.

Om een ​​willekeurig aantal laatste tekens uit een tekenreeks te verwijderen, vermeldt u het aantal punten volgens uw vereiste vóór het dollarsymbool, zoals weergegeven.

Methode 04: Awk . gebruiken

Awk is een geavanceerde scripttaal die kan worden gebruikt om patronen en procesteksten te matchen. U kunt Awk gebruiken om invoer op verschillende manieren te verschuiven en te wijzigen. U kunt ook letters uit strings verwijderen met awk. Awk lijkt een beetje anders dan sed. Deze keer hebben we de snaar veranderd met Aqsa Yasin. De awk-functie maakt een substring via de substr-methode en drukt deze af in de terminal. De functielengte is gebruikt om het aantal letters aan te tonen dat uit de genoemde string is verwijderd. Hier betekent lengte($0)-5 het verwijderen van de laatste 5 karakters van een string, en de rest zal een deel zijn van een substring die moet worden afgedrukt.

We hebben geprobeerd de laatste 9 tekens uit een string Aqsa Yasin te verwijderen en hebben A als uitvoersubstring gekregen.

Methode 05: Knippen gebruiken

Knippen lijkt een opdrachtregelprogramma te zijn om een ​​stuk tekst uit zo'n zin of document te extraheren en af ​​te drukken naar standaarduitvoer. Deze bewerking kan ook worden gebruikt om letters uit een soort string te verwijderen. We gebruiken een voorbeeldzin en geven deze door aan de snij-instructie voor testdoeleinden. Dus we hebben de Aqsa Yasin-zin gebruikt en doorgegeven aan de cut-query. Na de vlag -c hebben we het bereik van indexen voor een string gedefinieerd om de tekens uit een genoemde string te knippen. Het toont de tekens van index 1 tot index 5. Index 5 is hier uitgesloten. De uitvoer toont de eerste 4 tekens als Aqsa.

Deze keer zullen we de snij-instructie anders gebruiken. We hebben de rev-functie gebruikt om de string om te keren. Na het omkeren van een tekenreeks, zullen we het eerste teken van een tekenreeks knippen. De vlag -c2-betekent dat onze substring verder karakter 2 zal zijn. Daarna wordt de reverse-functie opnieuw gebruikt om de string terug te draaien. Dus deze keer kregen we de originele tekenreeks terug met het verwijderen van het laatste teken.

Om de laatste 7 karakters te verwijderen, hoef je alleen maar -c7- te vermelden in het cut-commando terwijl je ook de reverse-functie gebruikt.

Conclusie:

Er is tijd voor meer dan één methode om een ​​basistaak op Linux uit te voeren. Evenzo is het mogelijk om tekens uit een tekst te verwijderen. Dit artikel demonstreerde vijf verschillende methoden om ongewenste tekens uit een string te verwijderen, evenals enkele instanties. Welke tool u ook kiest, het hangt volledig af van uw keuze en, belangrijker nog, van wat u wilt bereiken.