Angenommen, haben wir den folgenden Befehl und die damit verbundene Ausgabe:Erstellen von Dateien mit Strings, die begrenzt durch bestimmte Zeichen in BASH
gsettings list-recursively org.gnome.Terminal.ProfilesList | head -n 1 | grep -oP '(?<=\[).*?(?=\])'
Ausgang:
'b1dcc9dd-5262-4d8d-a863-c897e6d979b9', 'ca4b733c-53f2-4a7e-8a47-dce8de182546', '802e8bb8-1b78-4e1b-b97a-538d7e2f9c63', '892cd84f-9718-46ef-be06-eeda0a0550b1', '6a7d836f-b2e8-4a1e-87c9-e64e9692c8a8', '2b9e8848-0b4a-44c7-98c7-3a7e880e9b45', 'b23a4a62-3e25-40ae-844f-00fb1fc244d9'
Ich brauche gsettings Befehl in einem Skript verwenden und Dateinamen für den Befehl Ausgabe von Gesessets erstellen. Zum Beispiel sollte ein Dateiname
seinb1dcc9dd-5262-4d8d-A863-c897e6d979b9
die nächste:
ca4b733c-53f2-4a7e-8a47-dce8de182546
und so weiter.
Wie kann ich das tun?
Sie können Ändere deinen sed-Befehl, um früher zu beenden, und dann könnte OP '| Kopf -1': 'sed" s/['] // g; 1q "'. Um auch '] [' 'zu ersetzen, müssen Sie es nur an der Vorderseite der Zeichenklasse hinzufügen: 'sed" s/[] ['] // g; 1q "' Dadurch kann OP gsettings direkt an sed weiterleiten. – andlrc
@ dev-null: Sie sind zu 100% richtig. Wird OP erlauben, seinen ursprünglichen cmd gemäß Ihrem Vorschlag zu ändern – mauro