![String-Konvertierung, damit sie wie eine Python-Liste aussieht](https://rvso.com/image/154483/String-Konvertierung%2C%20damit%20sie%20wie%20eine%20Python-Liste%20aussieht.png)
Ich habe eine Zeichenfolge wie „String1, String2, String3“.
Ich möchte dasselbe in ["string1","string2","string3"] umwandeln.
Ich habe versucht,
sed 's/\(,\)/"\1"/g'
Aber es kehrt zurückstring1","string2","string3
Antwort1
Da Sie bereits Anführungszeichen um die Kommas einfügen können, fügen Sie am Anfang und Ende ["
einfach „und“ hinzu:"]
sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
Beispiel:
$ echo string1,string2,string3 | sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
["string1","string2","string3"]
Antwort2
Hier ist eine reine Bash-Lösung:
$ str='string1,string2,string3'
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]
Da dieser Ansatz keine externen Dienstprogramme und keine Unterprozesse erfordert, sollte er schnell gehen.
Wie es funktioniert
Wir verwenden Bash'sMustersubstitutionum alle Kommas durch zu ersetzen ","
. Da "
es sich um ein Shell-aktives Zeichen handelt, müssen wir es im Befehl maskieren:
$ echo ${str//,/\",\"}
string1","string2","string3
["
Der letzte Schritt besteht darin , am Anfang und "]
am Ende der Zeichenfolge etwas hinzuzufügen . Also:
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]