コマンドラインでファイルに番号を付け、各フォルダを再起動しますか?

コマンドラインでファイルに番号を付け、各フォルダを再起動しますか?

私は小さなスクリプトを使ってファイル番号を付けます。私はカスタム作業から始めましたthunar。すべてのファイルが同じディレクトリにある場合にのみ機能します。新しいファイル名は、5つのファイル名を変更00001.extしたときの名前です00005.extkrename各フォルダに再起動するオプションがあります。

私がこれを持っているとき

/path/to/folder1/file1
/path/to/folder1/file2
/path/to/folder2/file1
/path/to/folder2/file2

私のスクリプトはこれを生成します

/path/to/folder1/00001
/path/to/folder1/00002
/path/to/folder1/00003
/path/to/folder2/00004
               ^
           folder two

私が望むもの

/path/to/folder1/00001
/path/to/folder1/00002
/path/to/folder1/00003
/path/to/folder1/00004
               ^
           folder 1

ファイル名を変更して新しいフォルダごとに再起動できるコマンドラインツールはありますか?

ベストアンサー1

使用真珠rename(すべてのオペレーティングシステムで動作):

rename -n 's!folder\d+/.*!sprintf "folder1/%05d", ++$MAIN::c!se' ./folder*/*
$ tree folder*
folder1
├── 00001
├── 00002
├── 00003
└── 00004
folder2

スイッチの削除-n、別名。試運転あなたの試みが満足なとき実際の名前に変更

より深く:

以下を使用してキャプチャできますfolder

rename -n 's!([^/]+)\d+/.*!sprintf("%s1/%05d", $1, ++$MAIN::c)!se' ./folder*/*

それを実現する動的

必要に応じてさらにロジックを追加できます。これはPerlコードです。

おすすめ記事