2016-05-18 21 views
1

ファイル名にバージョン番号が付いたJARファイルがあります。これを外部から再構築するたびにcrontabシェルスクリプトの一般的な名前に変更したいリポジトリ。たとえば、 "example-1.9.4.jar"という名前を "example.jar"に変更して、すべてのバージョンが同じファイル名を共有するようにする必要があります。私は名前を変更コマンドでRegexを使用することを考えていたが、正確な部分文字列パターンをどのように扱うかを理解することはできない。Linux:完全なサブ文字列でファイルの名前を変更

名前変更コマンドを使用してファイル名からバージョン番号を削除するにはどうすればよいですか? renameはその後、使用できない場合

rename -n 's/-(\d+\.)+jar$/.jar/' *.jar 

:あなたが行うことができますrenameユーティリティを使用して

答えて

1

for f in *.jar; do 
    mv "$f" "${f/-[0-9]*jar/.jar}" 
done 
1

あなたはこの関数を作成し、 sedコマンド試すことができます...

sedreplace() { sed -i "s/$1/$2/" $3; } 

使用法:あなたはシェルスクリプトでこの関数を記述する場合

sedreplace regexp_needle replacement file 

あなたはソースコマンド

を使用してスコープに追加することができます
関連する問題