Ich versuche, die Version aus einem Paketnamen mit nur Bash zu entfernen. Ich habe eine Lösung, aber ich denke nicht, dass das die beste Lösung ist, also würde ich gerne wissen, ob es einen besseren Weg dafür gibt. mit besser ich meine sauberer, einfacher zu verstehen.Strip-Version von Paketname mit Bash
Angenommen, ich habe die Zeichenfolge "my-program-1.0" und ich möchte nur "mein-Programm". Meine aktuelle Lösung ist:
#!/bin/bash
PROGRAM_FULL="my-program-1.0"
INDEX_OF_LAST_CHARACTER=`awk '{print match($0, "[A-Za-z0-9]-[0-9]")} <<< $PROGRAM_FULL`
PROGRAM_NAME=`cut -c -$INDEX_OF_LAST_CHARACTER <<< $PROGRAM_FULL`
tatsächlich, der „Paketname“ Syntax ist ein RPM Dateiname, wenn es darauf ankommt.
danke!
wie etwa laufen dachte es 'sed„s/[-0-9.] * $ // "'? – BCS
@BCS: Oder etwas ein wenig vorsichtiger; Ihr passt zum Beispiel gegen 'program-name-3 ... 4--789' oder realistischer gegen' program-name2-1.0' (streichen auch die 2 falsch ab). – Cascabel
Beachten Sie, dass die Version * auch Buchstaben enthalten darf. –