Etwas neu zu bash.Extrahieren Muster aus einer Zeichenfolge in einem Bash-Skript
Ich habe experimentiert mit Parametererweiterungen, grep, sed und echo, um dieses Problem zu lösen, aber kann es nicht ganz hinarbeiten.
Ich versuche, ein bestimmtes Muster aus $ PWD in einem Bash-Skript zu extrahieren.
Lasst uns sagen, dass es eine Vielzahl von vollständigen Pfade sein könnte:
/home/files/tmp8
/home/tmp28/essential
/home/tmp2/essential/log
/home/files/tmp10/executables
/tmp8/files/whatever/etc
In jedem Fall möchte ich eine beliebige Zeichenfolge extrahieren, die „tmp“, gefolgt von 1 oder mehr ganze Zahlen enthält.
in jedem Fall also, in denen $ PWD verarbeitet wird, wird er zurückkehren „tmp8“, „tmp28“, „tmp2“ usw.
Erklärungen dafür, wie die Funktionen/Betreiber der Arbeit in Bezug auf dieses Problem zu lösen, würde auch sehr geschätzt werden.
Vielen Dank für beide Erklärungen. Kann ich das extrahierte Muster einer Zeichenkette zuordnen oder in einem anderen Befehl verwenden? –
Ja, Sie können 'str = $ (grep -o 'tmp [0-9] *' <<<" $ PWD ")' verwenden, um das extrahierte Muster einer Variablen 'str' zuzuordnen – anubhava
' grep -o 'tmp [ 0-9] * '<<< "$ PWD" 'gibt nur den übereinstimmenden String ie' tmp 'nicht die vollständige Eingabe zurück. –
anubhava