1

bash スクリプトを使用して多くのファイルの名前を変更したい:

オリジナル:

Kassai_szemle_1885_00015.jpg 
Kassai_szemle_1885_00016.jpg 
Kassai_szemle_1885_00017.jpg 

次のように名前を変更する必要があります。

Kassai_Szemle_1885_00015.jpg 
Kassai_Szemle_1885_00016.jpg 
Kassai_Szemle_1885_00017.jpg 

「s」のみ大文字の「S」に名前を変更する必要があります。

どうすればbashでそれを行うことができますか?

4

2 に答える 2

6

置換拡張を使用する

ここでは正規表現は実際には必要ありませんが、非標準renameコマンドで使用したり、sed、awk、または perl でファイル名を解析したりすることで正規表現を使用できます。ただし、Bash の組み込みパラメーター拡張を使用して、これを簡単に処理することもできます。例えば:

for file in *_szemle_*
do
    mv "$file" "${file/_szemle/_Szemle}"
done
于 2013-03-02T14:57:43.780 に答える
6

renameGNU/Linux で利用できるユーティリティがあり(Ubuntu、Debian、RedHat のように... 標準perlは通常インストールされています)、簡単に使用できます。

次のようなすべての言及されたファイルを含むフォルダーで実行できます。

rename 's/^Kassai_s/Kassai_S/' Kassai_s*.jpg
于 2013-03-02T14:59:43.027 に答える