Ich versuche, eine oder zwei Zeilen Bash (die in einer Befehlszeile ausgeführt werden können) zu verwenden, um einen Ordnernamen zu lesen und die Version innerhalb des Namens zurückzugeben.Bash lesen Dateiname und geben Versionsnummer mit awk
Also wenn ich myfolder_v1.0.13
habe, weiß ich, dass ich echo "myfolder_v1.0.13" | awk -F"v" '{ print $2 }'
verwenden kann und es wird mit 1.0.13
zurückkehren.
Aber wie bekomme ich die Shell den Ordnernamen und Rohr mit dem awk
Befehl zu lesen, um mir das gleiche Ergebnis ohne echo
zu geben? Ich nehme an, ich könnte immer zum Verzeichnis navigieren und die Ausgabe von pwd
irgendwie in eine Variable übersetzen?
Vielen Dank im Voraus.
Edit: Sobald ich gefragt habe, habe ich es herausgefunden. Ich kann
result=${PWD##*/}; echo $result | awk -F"v" '{ print $2 }'
verwenden und es gibt mir, was ich will. Ich werde diese Frage für andere zurücklassen, bis jemand darauf hinweist, dass ich es abnehme.
Es gibt keine "Ordner" in UNIX, der UNIX-Begriff für das, was Windows als "Ordner" bezeichnet "Verzeichnis" - diese Informationen erleichtern Ihnen das Lesen von UNIX-Tool-Dokumentation und finden/erkennen Werkzeuge, die funktionieren auf Verzeichnissen (zB 'dirname',' find. -type d', etc.). –