文字列からすべての数字を削除する正規表現を知っています。
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コードを実行した後、結果を印刷します。-e
Perlコードs/[\d\.]\.rpm$//
数字と点の組み合わせを含むが.rpm
空の文字列で終わる文字を置き換えます。perldoc perlre
Perl正規表現の詳細については、参考資料を参照してください。