9

次のようなファイルがたくさんあります。

13831_1.jpg
13838_1.jpg
138035_1.jpg
138037_1.jpg
138039_1.jpg

ファイル名の番号に 5000000 の値を追加する必要があります。結果は次のようになります。

5013831_1.jpg
5013838_1.jpg
5138035_1.jpg
5138037_1.jpg
5138039_1.jpg

bashまたはperlでそれを行う方法はありますか?

4

3 に答える 3

9

する: rename -v. 出力される場合:

Usage: rename [-v] [-n] [-f] perlexpr [filenames]

このチェックは、少なくとも 2 つの異なる名前変更ツールがあり、機能が大きく異なるためです。そして、私が持っている解決策には、perlexpr を処理する名前の変更が必要です。

次に、次のことができます。

rename 's/^(\d+)/5000000+$1/e' *.jpg
于 2013-06-19T10:09:52.853 に答える
6

のみを使用してこれを行う1つの方法bash

for file in *.jpg; do
  number=${file%_*}
  therest=${file#$number}
  mv "$file" "$((number+5000000))$therest"
done

ノート:

于 2013-06-19T10:12:18.600 に答える
-3
$filename      = "13831_1.jpg";
$org           = explode("_".$filename);
$addnumber     = 5000000+$org[0];
$string        = implode("_",$addnumber);
于 2013-06-19T10:12:26.683 に答える