1

フォルダー ファイルの名前を順番にフォルダー名に変更するスクリプトを完成させるには、少し助けが必要です。これは一般的なアクションだと思っていたのですが、検索しても探しているものを正確に見つけることができないようです. ファイルの名前を順番に変更できるものを見つけましたが、ファイルの先頭にフォルダーまたはディレクトリ名を追加したいと考えています。

#!/bin/bash
a=1
for i in *.jpg; do
  new=$(printf "%04d.jpg" ${a}) #04 pad to length of 4
  mv ${i} ${new}
  let a=a+1
done

したがって、これらのフォルダーとファイルが必要です。

~/tmp/6856u56u56.jpg
~/tmp/7567787.jpg

~/tmp2/46u65h5hh.jpg
~/tmp2/b656hy6hjh.jpg

のように見えるように:

~/tmp/UG-tmp-001.jpg
~/tmp/UG-tmp-002.jpg

~/tmp2/UG-tmp2-001.jpg
~/tmp2/UG-tmp2-002.jpg

~/tmp/(text)-(directory name)-(sequential numbering).(extension)

スクリプトを実行した後。

誰か助けてくれませんか?また、ファイルは必ずしも .jpg ではなく、フォルダーの名前にスペースが含まれている場合があります。これが問題である場合は、私に知らせてください。これは、bash スクリプトを使用する Linux 用です。うまく機能する場合は、おそらくファイル マネージャーの右クリックに統合するようにします。前もって感謝します!

4

1 に答える 1

0

期待される結果を見ると、このコードは機能するはずです

#!/bin/bash
a=1
result=$(printf '%s\n' "${PWD##*/}")
echo $result
filename="text-$result-"  #replace text with what you need
for i in *.jpg; do
  newfilename="$filename$a.jpg" # since the extension is does not change you can hardcode it
  echo $newfilename
  mv ${i} ${newfilename}
  let a=a+1
done
于 2013-10-22T05:03:32.700 に答える