Ich möchte in der Lage sein, einen Autorisierungscode nach -
Zeichen zu teilen , damit ich jedes Segment einzeln bearbeiten kann. Ich möchte keine externen Binärdateien ( awk
, grep
) verwenden - dies soll so minimalistisch wie möglich sein. Wie kann ich das erreichen?
Hier ist ein Beispiel für einen Authentifizierungscode:
82a8-bd7d-986d-9dc9-41f5-fc02-2c20-3175-097a-c1eb
Antworten:
Versuchen Sie es mit dem internen Feldtrennzeichen (
IFS
):Ausgabe:
Durch Festlegen des internen Feldtrennzeichens teilen Sie
AUTH_CODE
das-
Zeichen auf, sodass Sie die neu erstellten Elemente in einerforeach
Schleife durchlaufen können .quelle
unset IFS
sobald Sie fertig sind.${AUTH_CODE[@]}
? Ist das ,[@]
was bash bewirkt , dass die Zeichenfolge aufgeteilt?[@]
schien überhaupt nicht benötigt zu werden?Sie können IFS verwenden, dies ist jedoch einfacher:
Bitte beachten Sie, dass
-
nach dem Teilen eine Zeichenfolge zum Teilen hinzugefügt wurde . Andernfalls wird das letzte Token ignoriert.quelle
do
und so viele Zeilen haben, wie Sie möchtendone
.Ein anderer Weg mit Pattern Matching und Array:
quelle
Verwenden Sie einfach die Parametererweiterung:
Ausgabe:
quelle
quelle