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
。