名前番号に基づいてmvファイルをフォルダに配置します。

名前番号に基づいてmvファイルをフォルダに配置します。

フォルダが30個あります。

s-01
s-02
...
s-30

さらに、30個のファイルがあります:

txtFile-001
txtFile-002
...
txtFile-030

次のタスクを一度に行う方法

mv txtFile-001 s-01/txtFile
mv txtFile-002 s-02/txtFile
...
mv txtFile-030 s-30/txtFile

答え1

forループを使用してください:

for i in $(seq -w 1 30); do mv -v "txtFile-0${i}" "s-${i}/txtFile"; done

これは01、コマンドにその番号を含むすべての番号を実行して呼び出します30mv$i

編集する:それがなければ、seq次のように繰り返されます。

for i in {01..30}; do mv -v "txtFile-0${i}" "s-${i}/txtFile"; done

答え2

一度のストライキ?

prename 's!txtFile-0(..)$!s-$1/txtFile!' txtFile*

これは正規表現を使用してtxtFile-0nnの末尾の2桁を分割し、それをディレクトリサフィックスとして使用します。

関連情報