Bashのみを使用して、パッケージ名からバージョンを削除しようとしています。解決策は 1 つありますが、それが最善の解決策ではないと思うので、より良い方法があるかどうかを知りたいです。より良いとは、よりクリーンで理解しやすいことを意味します。
「my-program-1.0」という文字列があり、「my-program」のみが必要だとします。私の現在の解決策は次のとおりです。
#!/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`
実際には、「パッケージ名」の構文は RPM ファイル名です。
ありがとう!