Bitte versuchen Sie die folgenden Befehle:
echo "(After Sweet Memories) Play Born To Lose Again" | tr '(' '-' | tr ')' '-' | tr ' ' '-'
-After-Sweet-Memories--Play-Born-To-Lose-Again
(Beachten Sie das Doppel --
)
Ich kann den Befehl nicht ändern und einen (Null-)Wert übergeben, stattdessen muss ich einen anderen übergeben -
siehe dieses Beispiel und diesen Fehler:
echo "(After Sweet Memories) Play Born To Lose Again" | tr '(' '' | tr ')' '' | tr ' ' '-'
tr: tr: when not truncating set1, string2 must be non-emptywhen not truncating set1, string2 must be non-empty
Sie können “tr -d” verwenden, um nur Zeichen zu entfernen. Ist das die gesuchte Lösung?
echo "(After Sweet Memories) Play Born To Lose Again" | tr -d '(' | tr -d ')' | tr ' ' '-'
After-Sweet-Memories-Play-Born-To-Lose-Again
EIN tr
Lösung wurde bereitgestellt, aber tr
erfordert, dass Sie mehrere Instanzen in einer Pipeline ausführen. Sie können alles in einem Vorgang mit erledigen sed
.
echo "(After Sweet Memories) Play Born To Lose Again" | sed 's/ /-/g; s/[()]//g;'
After-Sweet-Memories-Play-Born-To-Lose-Again
Sie können sogar verlieren echo
(obwohl das kaum ein Problem ist…)
sed 's/ /-/g; s/[()]//g;' <<< "(After Sweet Memories) Play Born To Lose Again"
After-Sweet-Memories-Play-Born-To-Lose-Again
13113900cookie-checkEntfernen Sie Steuerzeichen aus der Zeichenfolge mit TRyes