sed は一致するパターンを検索して表示し、残りは削除します。

sed は一致するパターンを検索して表示し、残りは削除します。

パッケージを含むリストを整理しようとしています。パッケージリビジョンを削除してパッケージ名だけを保持したいと思います。

すべてのパッケージには、package-name-majorver-minorverなどの命名規則があります。openssl-1.0.1e-57.0.5.el6。 -1.0.1e-57.0.5.el6ではなくopensslだけが必要です。

私はこれまでこれを持っていますが、sed 's/^.*-//'明らかに動作しません。

ベストアンサー1

パッケージ名に常に2つのバージョン番号部分がハイフンで区切られて追加され、バージョン部分にハイフンが含まれていない場合は、このコマンドを使用できます。

sed 's/-[^-]*-[^-]*$//'

$これにより、行の末尾にある2つのハイフン()が削除されます。各ハイフンの後には、ハイフン以外の文字が0個以上続きます。たとえば、foo-bar-baz--次のようfoo-bar-bazに変更されます。

おすすめ記事