0

次の形式で名前を変更する必要がある何千ものファイルがあります。2008:09:18:17:45:48-alfanumeric-alfanumeric.wav 最初の部分は日付です。

元。2008:09:18:17:45:48-703-s.wav

名前を次のように変更したい:

20080918.174548.703.s.wav

基本的に「:」を削除し、より人間が読みやすい形式にして分割しやすくします。

名前の変更が探しているものであることは知っていますが、正規表現が機能していません。私は入力しています:

rename 's/(\d):(\d):(\d):(\d):(\d):(\d)-(.?)-(.?).wav/$1$2$3. $4$5$6.$7.$8.wav/' ./*

4

3 に答える 3

2
rename 's/(\d+):(\d+):(\d+):(\d+):(\d+):(\d+)-([^-]+)-([^.]+).wav/$1$2$3.$4$5$6.$7.$8.wav/' ./*

を使用する必要があります-あなたのバージョンでは、常に1桁のみに一致します。さらに、: をエスケープする必要はありません。

于 2009-10-27T20:43:55.050 に答える
1

これが一度だけ行うものである場合は、次のようにします。

1) ファイルを新しいファイルに ls します: ls datadir > mytmp 2) お好みのエディターで mytmp を編集します。2a 「.」など、重要なデータ ファイルではない行を削除します。および ".." 2b 各行をシェル コマンドに編集して、ファイルの名前を変更します。私はemacsが好きで、キーボードマクロを作成して、ファイル名をクリップし、「mv」を挿入し、ファイル名を挿入し、スペースを挿入し、ファイル名を再度挿入し、挿入されたファイル名を目的の形式に編集します。2c 保存 3) sh < mytmp を実行

終わり!エディターがマクロや同様の機能をサポートしていない場合、エレガントではなく退屈ですが、動作し、git-er-done が実行されることが保証されています。

于 2009-10-27T20:44:44.863 に答える