web-dev-qa-db-ja.com

ファイルのグループのファイル名のコンポーネントを並べ替える

名前の付いた写真ファイルのグループがあります:ddmmyyyyxxxx.jpg(xxxxは単なるシーケンス番号)検索しようとしていますが、残念ながら結果がありません。ファイル名をyyyy-mm-dd-xxxx.jpgに変更します。

ネット上で見つけることができるのは、特定の文字を置き換えるか、大文字と小文字を変えることです。

1
Dark Edge 2008

キャプチャグループを使用して、Perlベースのrenameコマンドでそれを行うことができるはずです。その最も単純な

rename -vn -- 's/^(\d{2})(\d{2})(\d{4})/$3-$2-$1/' *.jpg

(注:-nは予行演習フラグです。削除しない限り、実際には何も変更されません。)

3
steeldriver

これは、次のbashスクリプトを使用して実行できます。

#!/bin/bash

for file in $(ls)
do
    date=${file:0:2}
    month=${file:2:2}
    year=${file:4:4}
    sequence=${file:8:4}
    extension=${file: -3}

    mv $file $year\-$month\-$date\-$sequence.$extension
done
echo all files have been renamed

このスクリプトを使用するには、ターミナルを開き、touch scriptに続けてchmod +x scriptと入力して実行可能にします。次にnano scriptを実行し、上記のコードをコピーして端末に貼り付けます。を押してファイルを保存します CTRL+X、によってフォロー Y その後 enter。次に、これらのイメージを含むディレクトリにスクリプトを移動し、./scriptを実行してスクリプトを実行します。

これにより、スクリプトのディレクトリにあるすべてのファイルの名前が、要求したパターンに変更されます。ただし、スクリプト自体の名前も変更するため、スクリプトを再度実行する場合は、名前が異なることに注意してください(最終的にはpt-ri-sc-.iptになるので、mv pt-ri-sc-.ipt scriptを実行することをお勧めしますそれ以外の場合は、lsls $1に置き換えて、スクリプトを別の場所に保存して、誤って名前を変更しないようにすることもできます。また、このスクリプトは、 the question(ddmmyyyyxxxx.jpg)。他のファイルについては、ファイルは奇妙な名前になります。

2
Rumesh

Krenameを使用するこの種の手順では、GUIがあり、少し直感的です…ubuntuでは、ソフトウェアセンターにあります。

0
user219502