私は最初の数字まで文字列の一部を抽出する簡単な方法を探したいと思います(おそらく文字列を文字ごとに繰り返すのではなく正規表現を使用するようです)。rpm -qa
バージョンなしでパッケージ名を抽出するためにこれを使用しています。たとえば、
Parsing: perl-Text-ParseWords-3.30-1.fc22.i686
Result: perl-Text-ParseWords
ベストアンサー1
好みの代替
私たちは単にrpm クエリの変更名前のみ出力されます。
rpm -qa --queryformat "%{NAME}\n"
あるいは、正規表現で汚れている可能性があります。
正確には「直接」ではありませんが、ここでトリックを実行する必要があるsed正規表現があります。
sed -e 's/\([^\.]*\).*/\1/;s/-[0-9]*$//' <<< "perl-Text-ParseWords-3.30-1.fc22.i686"
これは、名前にピリオドを含むパッケージを除くすべてを処理する必要があります(許可されていないと思います)。
高速故障
s/\([^\.]*\).*/\1/
最初のクラスの前にすべてをキャッチしてください。だからperl-Text-ParseWords-3.30-1.fc22.i686
perl-Text-ParseWords-3
s/-[0-9]*$//
末尾-
と最初のバージョン番号を削除します。だからperl-Text-ParseWords-3
それはperl-Text-ParseWords
。