code_junkie

Bash script to pad file names

Nov 10th, 2011
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. (foo1, foo2, ..., foo1300, ..., fooN)
  2.  
  3. (foo00001, foo00002, ..., foo01300, ..., fooN)
  4.  
  5. for f in foo[0-9]*; do mv $f `printf foo%05d ${f#foo}`; done
  6.  
  7. for i in ((i=1; i<=N; i++)) ; do mv foo$i `printf foo%05d $i` ; done
  8.  
  9. rename 's/d+/sprintf("%05d",$&)/e' foo*
  10.  
  11. for file in foo*; do
  12. newnumber='00000'${file#foo} # get number, pack with zeros
  13. newnumber=${newnumber:(-5)} # the last five characters
  14. mv $file foo$newnumber # rename
  15. done
  16.  
  17. #!/bin/bash
  18.  
  19. # some test data
  20. files="foo1
  21. foo2
  22. foo100
  23. foo200
  24. foo9999"
  25.  
  26. for f in $files; do
  27. prefix=`echo "$f" | cut -c 1-3` # chars 1-3 = "foo"
  28. number=`echo "$f" | cut -c 4-` # chars 4-end = the number
  29. printf "%s%04dn" "$prefix" "$number"
  30. done
  31.  
  32. #!/bin/bash
  33. for file in foo[0-9]*.png; do
  34. # strip the prefix ("foo") off the file name
  35. postfile=${file#foo}
  36. # strip the postfix (".png") off the file name
  37. number=${postfile%.png}
  38. # subtract 1 from the resulting number
  39. i=$((number-1))
  40. # copy to a new name in a new folder
  41. cp ${file} ../newframes/$(printf foo%08d.png $i)
  42. done
Add Comment
Please, Sign In to add comment