Unten sehen Sie den Ausschnitt eines Shell-Skripts aus einem größeren Skript. Es entfernt die Anführungszeichen aus der Zeichenkette, die in einer Variablen enthalten ist. Ich verwende dazu sed, aber ist das effizient? Wenn nicht, was ist dann der effizienteste Weg?
#!/bin/sh
opt="\"html\\test\\\""
temp=`echo $opt | sed 's/.\(.*\)/\1/' | sed 's/\(.*\)./\1/'`
echo $temp
0 Stimmen
Ich würde vorschlagen, dass Sie
sed "s/^\(\"\)\(.*\)\1\$/\2/g" <<<"$opt"
. Diese Syntax entfernt Qoutes nur, wenn es ein passendes Paar gibt.0 Stimmen
@JohnSmith Ich muss auch automatisch Anführungszeichen in einem Shell-Skript entschlüsseln, aber ich muss das tun, egal ob sie übereinstimmen oder nicht, also werde ich den von Ihnen geposteten Ausdruck wahrscheinlich nicht verwenden.
0 Stimmen
Wenn Sie diese Frage gefunden haben und einfach alle Anführungszeichen entfernen wollen, lesen Sie diese Antwort: askubuntu.com/a/979964/103498 .