Merkkijonosta lainausmerkkien poistaminen

Bash:
Merkkijonosta lainausmerkkien poistaminen

Kuinka:

Bash tarjoaa useita tapoja poistaa lainausmerkit merkkijonoista. Tässä muutamia nopeita esimerkkejä:

#!/bin/bash

# Käyttäen muuttujan korvausta sekä yksittäisten että kaksinkertaisten lainausmerkkien poistoon
STRING="\"Hello, World!\""
echo ${STRING//\"}

# Käyttäen `tr`:ää lainausmerkkien poistoon
STRING="'Hello, World!'"
echo $STRING | tr -d "\'"

# Käyttäen `sed`:iä lainausmerkkien poistoon
STRING="\"Hello, World!\""
echo $STRING | sed 's/"//g'

Esimerkkitulostus:

Hello, World!
Hello, World!
Hello, World!

Syväsukellus

Aikoinaan Unix-komennot kuten tr ja sed olivat päätensiotekstinkäsittelyyn. Niitä käytetään edelleen nykyään niiden joustavuuden ja tehon vuoksi tekstimuunnoksissa, kuten lainausmerkkien poistamisessa. Ne ovat olennainen osa kenraation kuoriskriptien työkalupakkia.

Bash on itse kehittynyt tästä, ja muuttujan korvaus lisää toisen kerroksen yksinkertaisuutta pienimuotoisiin merkkijonomanipulaatioihin. Se säästää sinua putkittamasta ulkopuolisiin binääreihin, tehden skripteistäsi hieman tehokkaampia.

Vaikka tr on hieno merkkien poistamiseen, se ei käsittele monimutkaisempia kuvioita. sed toisaalta käyttää säännöllisiä lausekkeita, joten se on joskus liioittelua ja saattaa olla hitaampi yksinkertaisissa operaatioissa.

Menetelmän valinta riippuu tapauksestasi. Jos sinun tarvitsee poistaa erilaisia lainausmerkkejä ja olet jo Bash-skriptin kontekstissa, muuttujan korvausta on vaikea voittaa sen yksinkertaisuuden vuoksi. Mutta jos olet muuntamassa tekstivirtoja tai monirivisiä tietoja, tr ja sed ovat tukevasi kaverit.

Katso myös: