2016-08-11 25 views
1

Ich suche nach einer Lösung, um eckige Klammern in einer Bash-Zeichenfolge zu entfernen. Betrachten wir zum Beispiel die Zeichenfolge:Ersetzen/Entfernen von eckigen Klammern in Bash String

ldr r3, [r0,#8]! 

aber ich bin nicht sicher, wie die ‚[‘ und ‚]‘ zu beseitigen. Ich möchte alle Symbole auf die eleganteste Art und Weise beseitigen, wie zum Beispiel:

aber mit eckigen Klammern inklusive. Wie kann dies erreicht werden?

Antwort

2

Verwenden

echo "${str//[][,.!]}" 

[] Da kein brauchbares Muster ist, wird die ] als Teil des Ausdrucks in eckigen Klammern behandelt, wenn es der ersten Charakter aufgeführt ist. Klammerausdrücke können nicht geschachtelt werden, daher gibt es keine Einschränkung für [.

Sie können auch einfach die Flucht der ]:

echo "${str//[[\],.!]}" 
+0

Perfect. Vielen Dank für die Erklärung! –

Verwandte Themen