sedまたはawk:数字で始まりrpmで終わる文字列を削除する

sedまたはawk:数字で始まりrpmで終わる文字列を削除する

文字列からすべての数字を削除する正規表現を知っています。

sed 's/-[0-9].*//'

次の文字列のように、数字で始まり、rpmで終わるすべての文字列を削除したいと思います。

software.v2.strings.strings.3.30.rpm
software.64.7.7.0.strings.4.30.rpm
soft.1-4-4.string.44.rpm

rpmで終わる最後の数字だけを削除する必要があります。

だから戻ってくる

software.v2.strings.strings 
software.64.7.7.0.strings 
soft.1-4-4.string 

何をすべきかを知っている人はいますか?

ベストアンサー1

このPerl Oneライナーはどうですか?

perl -pe 's/[\d.]+\.rpm$//'

仕組み:

  • -p入力ファイルの各行にPerlコードを実行した後、結果を印刷します。
  • -ePerlコード
  • s/[\d\.]\.rpm$//数字と点の組み合わせを含むが.rpm空の文字列で終わる文字を置き換えます。perldoc perlrePerl正規表現の詳細については、参考資料を参照してください。

おすすめ記事