ターミナルを使用して特定の番号付きファイルの名前を変更する

ターミナルを使用して特定の番号付きファイルの名前を変更する

1~20 の番号が付けられた一連のファイルがあり、ターミナルでは次のように並べ替えられます。

episode1.txt
episode10.txt
episode11.txt
episode12.txt

番号の前に 0 を挿入して、ファイル 1 ~ 9 の名前を変更したいです。コードは次のとおりです。

for file in episode{1-9}.txt
do
   rename -vs "episode"* "episode0"*
done

「mv」コマンドも試してみましたが、うまくいきませんでした。何かアドバイスはありますか?よろしくお願いします

答え1

シーケンスを列挙するには、{x..y}の代わりにを使用します{x-y}

すべてのファイルの名前が非常に似ているため、パラメータ展開を使用してプレフィックスを切り落としepisode、 に置き換えることができますepisode0

完全なコマンドは次のようになります。

for file in episode{1..9}.txt
do
    mv "$file" "episode0${file#episode}"
done

${file#episode}fileはパラメータ展開であり、この場合は、に一致する最短のプレフィックス パターンを削除しながらパラメータを展開しますepisode

関連情報