Ta bort tecken från String in Bash

Removing Characters From String Bash



Ibland kan du behöva ta bort tecken från en sträng. Oavsett orsaken ger Linux dig olika inbyggda, praktiska verktyg som gör att du kan ta bort tecken från en sträng i Bash. Den här artikeln visar hur du använder dessa verktyg för att ta bort tecken från en sträng.

Artikeln behandlar hur du utför följande:







  • Ta bort tecken från strängen med sed
  • Ta bort tecken från strängen med hjälp av awk
  • Ta bort tecken från strängen med klippning
  • Ta bort tecken från strängen med tr

Kommandona som visas i denna artikel utfördes i Ubuntu 20.04 Focal Fossa. Samma kommandon kan också utföras på andra Linux -distributioner som har ovanstående verktyg tillgängliga. Vi kommer att använda standardterminalprogrammet för att köra kommandona. Du kan komma åt Terminal -programmet med tangentbordsgenvägen Ctrl+Alt+T.



Ta bort tecken från strängen med sed

Sed är ett kraftfullt och praktiskt verktyg som används för att redigera textströmmar. Det är en icke-interaktiv textredigerare som låter dig utföra grundläggande textmanipulationer på inmatningsströmmar. Du kan också använda sed för att ta bort oönskade tecken från strängar.



För demonstrationsändamål använder vi en provsträng och rör den sedan till sed -kommandot.





Ta bort specifikt tecken från strängen

Med sed kan du ta bort ett specifikt tecken från en sträng. Till exempel för att ta bort h från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | sed s/h // '

Detta tar bara bort den första förekomsten av 'h' i strängen.
Ta bort specifik tecken från sträng 1
För att ta bort alla förekomster av 'h' från strängen, använd följande kommando:



$kastade ut 'Hej hur mår du?' | sed 's/h // g'

Var g står för global. Det kommer att ta bort alla förekomster av 'h' i strängen.
Ta bort specifikt tecken från sträng 2

Ta bort första tecknet från strängen

För att ta bort det första tecknet från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | sed 's /^.//' fil

Där (.) Matchar exakt ett enda tecken och (^) matchar alla tecken i början av strängen.
Ta bort första tecknet från strängen

Ta bort sista tecknet från strängen

För att ta bort det sista tecknet från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | sed 's /.$//'

Var ( . ) matchar exakt ett enda tecken och ($) matchar alla tecken i slutet av strängen.
Ta bort sista tecknet från strängen

Ta bort första och sista tecknet från strängen

För att ta bort det första och sista tecknet från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | sed 's /^.//; s /.$//'

Ta bort första och sista tecknet från strängen

Ta bort tecken från strängen med hjälp av awk

Awk är ett kraftfullt skriptspråk som används för mönstermatchning, tillsammans med textbehandling. Awk låter dig filtrera och transformera text på olika sätt. Du kan också använda awk för att ta bort tecken från strängar.

För demonstrationsändamål använder vi en provsträng och rör den sedan till kommandot awk.

Ta bort första tecknet från en sträng

För att ta bort det första tecknet från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | ock '{utskriftssubstrat ($ 0, 2)}'

Där ($ 0) är hela målsträngen och (2) är teckenets startposition. Kommandot ovan tar bort det första tecknet 'h', teckennummer '1' och returnerar målsträngen som börjar med det andra tecknet 'e'.
Ta bort första tecknet från en sträng

Ta bort de två första tecknen från strängen

Du kan också ta bort ett visst antal tecken från början av en sträng. Till exempel för att ta bort de två första tecknen från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | ock '{print sub ($ 0, 3)}'

Kommandot ovan tar bort de två första tecknen 'han' eller teckennumren '1 och 2' och returnerar målsträngen som börjar med teckennummer '3' eller 'l.'
Ta bort de två första tecknen från strängen

Ta bort sista tecknet från strängen

För att ta bort det sista tecknet från Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | ock '{utskriftssubstrat ($ 0, 1, längd ($ 0) -1)}'

Var längd ($ 0) -1 betyder att dra av 1 Från den totala karaktärslängden.

Kommandot ovan kommer att skriva ut strängen som börjar med teckennummer ' 1 ' upp till längd ($ 0) -1 för att ta bort den sista karaktären.

Det finns ' 19 ’Tecken (inklusive mellanslag) i ovanstående sträng. Kommandot fungerar genom att skriva ut alla tecken, börjar med tecken ' 1 'Och ​​upp till karaktären' 18 , 'Medan du tar bort det sista tecknet' 19 . ’

rmv last char frm string

Ta bort de två sista tecknen från strängen

För att ta bort de två sista tecknen från Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | ock '{utskriftssubstrat ($ 0, 1, längd ($ 0) -2)}' '

Var längd ($ 0) -2 betyder att dra av 2 Från den totala karaktärslängden.

Kommandot ovan kommer att skriva ut strängen, som börjar med teckennummer ' 1 'Och ​​upp till teckennummer' längd ($ 0) -2 , ’För att ta bort de två sista tecknen i strängen.
Ta bort de två sista tecknen från strängen

Ta bort både första och sista tecknet från strängen

För att ta bort både det första och det sista tecknet från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | ock '{utskriftssubstrat ($ 0, 2, längd ($ 0) - 2)}'

Var längd ($ 0) -2 betyder att dra av 2 Från den totala karaktärslängden.

Kommandot ovan kommer att skriva ut strängen, som börjar med teckennummer ' 2 'Upp till teckennummer' längd ($ 0) -2 , ’För att ta bort det första och sista tecknet.

Ta bort både första och sista tecknet från strängen

Ta bort tecken från strängen med hjälp av snitt

Cut är ett kommandoradsverktyg som vanligtvis används för att extrahera en del text från en sträng eller fil och skriva ut resultatet till en standardutmatning. Du kan också använda det här kommandot för att ta bort tecken från en sträng.

För demonstrationsändamål använder vi en provsträng och rör den sedan till kommandot cut.

Ta bort första tecknet från strängen

För att ta bort det första tecknet från strängen, Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | skära -c 2-

Detta kommando kommer att skriva ut strängen, som börjar med det andra tecknet, medan det första tecknet tas bort.
rmv cut -c

Ta bort de fyra första tecknen från strängen

För att ta bort de fyra första tecknen från strängen Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | skära -c 5-

Detta kommando kommer att skriva ut strängen, från det femte tecknet, medan de första fyra tecknen tas bort.
Ta bort de fyra första tecknen från strängen

Skrivsträng mellan 2: a och 5: e tecknen

För att skriva ut strängen Hej hur mår du? mellan den andra och femte karaktären , kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | skära -c 2-5

Detta kommando kommer att skriva ut strängen, från det andra tecknet och upp till det femte tecknet, medan de återstående inlednings- och sluttecknen tas bort.
rmv 2: a och 5: e c2

Ta bort sista tecknet från strängen

För att ta bort det sista tecknet från strängen Hej hur mår du? Använd skära kommando med varv , som följer:

$kastade ut 'Hej hur mår du?' | varv | skära -c2- | varv

Detta kommando fungerar genom att först vända strängen, sedan klippa det första tecknet och slutligen vända det igen för att ge dig önskad utdata.
02 Ta bort sista tecknet från strängen

Ta bort de fyra sista tecknen från strängen

För att ta bort de fyra sista tecknen från raden Hej hur mår du? kommandot skulle vara:

$kastade ut 'Hej hur mår du?' | varv | skära -c5- | varv

Det här kommandot fungerar genom att först vända strängen, sedan klippa de fyra första tecknen och sedan vända den igen för att ge dig önskad utdata.
rmv senaste fyra tecknen

Ta bort första och sista tecknet från strängen

För att ta bort de första och sista tecknen från strängen Hej hur mår du? Använd skära kommando med varv , som följer:

$kastade ut 'Hej världen!' | skära -c2- | varv | skära -c2- |varv

Detta kommando fungerar genom att klippa det första tecknet, sedan vända strängen och klippa dess första tecken, och sedan vända det igen för att ge dig önskad utdata.
rmv först och sist

Ta bort tecken från strängen med hjälp av tr

Kommandot tr (kort för translate) används för att översätta, klämma och ta bort tecken från en sträng. Du kan också använda tr för att ta bort tecken från en sträng.

För demonstrationsändamål använder vi en provsträng och rör den sedan till tr ​​-kommandot.

Ta bort alla förekomster av karaktär

Med kommandot tr kan du ta bort alla förekomster av små eller stora tecken från strängen. Till exempel, för att ta bort alla förekomster av små bokstäverna 'h' från strängen, skulle kommandot vara:

$kastade ut 'Hej hur mår du?' | NS -dh

ta bort alla händelser 01

På samma sätt, för att ta bort alla förekomster av det stora tecknet 'H' från strängen, skulle kommandot vara:

$kastade ut 'Hej hur mår du?' | NS -dH

Du kan också använda tolkade sekvenser för att ta bort små eller stora bokstäver:

$kastade ut 'Hej hur mår du?'| NS -d [:övre:]

förekommer lägre

$kastade ut 'Hej hur mår du?'| NS -d [:lägre:]

förekommer övre

Ta bort alla förekomster av små och stora bokstäver

Du kan också ta bort alla förekomster av både små och stora tecken från en sträng. Till exempel kommer följande kommando att ta bort alla förekomster av tecknet 'h', både små och stora bokstäver.

$kastade ut 'Hej hur mår du?' | NS -d'HH'

förekommer övre och nedre

Ta bort alla förekomster av tecken i ett specifikt intervall

För att ta bort alla förekomster av tecken från en sträng i det specifika intervallet 'd-h', skulle kommandot vara:

$kastade ut 'Hej hur mår du?' | NS -d 'd-h'

Detta kommando tar bort alla tecken i intervallet 'd-h' (d, e, f, g, h) i strängen.
förekommer specifikt intervall

Slutsats

I Linux kommer det alltid att finnas mer än ett sätt att utföra ett enkelt jobb. Detsamma gäller när du tar bort tecken från en sträng. Denna artikel visade dig fyra olika sätt att göra det, tillsammans med några exempel för att ta bort oönskade tecken från en sträng. Att bestämma vilket verktyg som ska användas beror helt på dina preferenser och, ännu viktigare, på vad du vill uppnå.