ファイルのリストをコピーして順番に続行するにはどうすればよいですか(ファイル1 =ファイルn + 1、2 = n + 2など)?

ムンキフィシュト

持っているファイルの束をコピーして、それらがシーケンシャルのままになるようにする必要があります。ファイルは同じフォーマットを持っています:file-0.Dfile-10.Dfile-20.D、... file-990.Dfile-0 = file-1000、file-10 = file-1010などにしたいのですが、どうすればよいですか?

ベンジャミンW。

各ファイル名の数値を1000ずつインクリメントし、残りはそのままにしておくには、正規表現を使用できます。

re='(.*-)([[:digit:]]+)(.*)'
for f in file*; do
    [[ $f =~ $re ]]
    echo mv "$f" "${BASH_REMATCH[1]}$(( ${BASH_REMATCH[2]} + 1000 ))${BASH_REMATCH[3]}"
done

結果が希望どおりの場合は、を削除できますecho

または、Perlrenameツールをお持ちの場合は、

rename -n 's/\d+/$&+1000/e' file-*

-n置換が問題ないようになったら削除します。これはrename、util-linuxプロジェクトのツールでは機能しないことに注意してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ