Hur man tar bort sista n-tecken från en sträng i Bash
I Bash kan trimning av blanksteg från användarinmatningar eller ta bort de sista n tecknen från en sträng användas för att städa upp filnamn med oönskade tillägg:
Metod 1: Använd cut Command
Cut-kommandot i Bash används för att extrahera avsnitt från varje rad i en fil. Den kan också användas för att extrahera ett specifikt teckenintervall från en sträng. För att ta bort de sista n tecknen från en sträng kan vi använda kommandot cut med alternativet -c, och här är syntaxen:
eko 'sträng' | skära -c -n
Här är strängen den faktiska strängen från vilken vi vill ta bort de sista n tecknen, och n är antalet tecken vi vill ta bort, nedan är exemplet som använder ovanstående syntax:
#!/bin/bash
sträng = 'Hej Linux'
eko ' $string ' | skära -c -5
I exemplet ovan har vi använt cut-kommandot för att ta bort de sista 6 tecknen från strängen 'Hello Linux' och utgången är 'Hello'.
Metod 2: Använd sed Command
Sed är en kraftfull strömredigerare som kan användas för att utföra olika texttransformationer på en fil eller en ström av input. För att ta bort de sista n tecknen från en sträng med sed, kan vi använda följande kommandosyntax:
eko 'sträng' | men 's/.\{n\}$//'Här är n antalet tecken vi vill ta bort från slutet av strängen, och nedan är ett exempel som använder kommandot sed:
#!/bin/bash
sträng = 'Hej Linux'
eko ' $string ' | men 's/.\{6\}$//'
I exemplet ovan har vi använt sed-kommandot för att ta bort de sista 6 tecknen från strängen 'Hello Linux' och utgången är 'Hello'.
Metod 3: Använda parameterexpansion
Parameterexpansion är en funktion i Bash som låter oss manipulera värdet på en variabel. För att ta bort de sista n tecknen från en sträng med parameterexpansion kan vi använda följande syntax:
${string::-n}Här innehåller strängvariabeln den faktiska strängen från vilken vi vill ta bort de sista n tecknen, och n är antalet tecken vi vill ta bort.
#!/bin/bashsträng = 'Hej Linux'
eko ${string::-6}
I exemplet ovan har vi använt parameterexpansion för att ta bort de sista 4 tecknen från strängen 'Hello Linux' och utgången är 'Hello'.
Slutsats
För att ta bort de sista n tecknen från en sträng i bash, är cut-kommandot, sed-kommandot och parameterexpansion de tre sätten. Dessa metoder är enkla att använda och kan vara till hjälp i olika Bash-skriptuppgifter. Genom att använda dessa metoder kan vi enkelt manipulera strängar och utföra texttransformationer i Bash.