Ta bort citattecken från en sträng

Bash:
Ta bort citattecken från en sträng

Hur man gör:

Bash har flera sätt att ta bort citattecken från strängar. Här är några snabba exempel:

#!/bin/bash

# Använder variabelsubstitution för att ta bort både enkla och dubbla citattecken
STRING="\"Hej, världen!\""
echo ${STRING//\"}

# Använder `tr` för att ta bort citattecken
STRING="'Hej, världen!'"
echo $STRING | tr -d "\'"

# Använder `sed` för att ta bort citattecken
STRING="\"Hej, världen!\""
echo $STRING | sed 's/"//g'

Exempel på utdata:

Hej, världen!
Hej, världen!
Hej, världen!

Fördjupning

För länge sedan var Unix-kommandon som tr och sed de primära verktygen för textbehandling. De används fortfarande idag på grund av deras flexibilitet och kraft i att hantera texttransformationer som att ta bort citattecken. De är en grundpelare i verktygslådan för alla som skriptar i skal.

Bash har sedan dess utvecklats och variabelsubstitution lägger till ytterligare ett lager av enkelhet för småskaliga strängmanipulationer. Det sparar dig från att pipa ut till externa binärer, vilket gör dina skript lite mer effektiva.

Medan tr är utmärkt för att ta bort tecken, hanterar det inte mer komplexa mönster. Sed, å andra sidan, använder reguljära uttryck, så det är ibland overkill och kan vara långsammare för enkla operationer.

Att välja mellan dessa metoder beror på ditt specifika fall. Om du behöver ta bort en variation av citattecken och du redan befinner dig i kontexten av ett Bash-skript, är användningen av variabelsubstitution en självklarhet för dess enkelhet. Men om du transformerar textströmmar eller data över flera rader, är tr och sed dina go-to-kompisar.

Se även: