파일이름 넘버링하기..

galien의 이미지

가끔가다가 파일들, 특히나 그림파일들을 번호로 관리하다보면
어이없는 경우가 생기곤합니다.

예를 들어 01.jpg 02.jpg, 03.jpg, .. 98.jpg, 99.jpg, 100.jpg, 101.jpg ...
정도로 이름이 주어지게되면, 파일이름 순서대로 그림을 보면 순서가 바뀌죠.

네, 쉽게 말해서 인터넷에서 만화를 다운받아서 보는데 순서가 꼬여서
재미를 반감시키는 경우 따위를 말하는 겁니다.

그래서 간단하게 파이썬으로 스크립트를 짜보았습니다.

대충 짜서 부끄러워서 올릴까 말까 한달을 고민했습니다. :oops:
(그래도 게을러서 다시 짜게되지는 않더군요.)

확장자를 제외한 파일 이름에 숫자가 있는 경우만 고려하였구요,
(시간나면 고치던가 하지요, 다른분이 해 주셔도 좋구요.)
리네임할 파일명들은 컴맨드라인 인자로 받습니다.

주석을
############################################################
# Authour : Sang Wook Kim aka galien
# License : GPL
############################################################

이렇게 달아봤는데, 이러면 GPL 이 성립되는 건가요?

File attachments: 
첨부파일 크기
파일 renamejpg.py.tar10 KB
Forums: 
galien의 이미지

확장자는 상관이 없구요,

뭐 부끄럽습니다.

정태영의 이미지

김상욱 wrote:
주석을
############################################################
# Authour : Sang Wook Kim aka galien
# License : GPL
############################################################

이렇게 달아봤는데, 이러면 GPL 이 성립되는 건가요?

http://www.fsf.org/licensing/licenses/gpl.html#SEC4

저 안에 있는걸 복사해서 넣으세요 :)

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

무한포옹의 이미지

max_num=$(echo -n $(basename $(ls -1 -v | tail  -n 1 ) .jpg) |wc -c)
for i in *.jpg ;do
     mv $i $(printf "%0"$max_num"d" $(basename $i .jpg|sed -e "s/^0*//")).jpg 
done

파이썬이 없는 경우(드물죠?)를 위해 BASH를 이용해 비슷한 기능의 스크립트를 만들었습니다.
경로 내에 다른 파일이 있어도 되지만 확장자는 대소문자 중 하나로 통일되어야 하며 BASH에서 인수를 받을 수 있는 한계까지만 수정이 가능합니다.
(에러 많습니다 ㅎ ㅎ ㅎ 우선 두개 이상의 0로 시작하는 파일명 처리 부분 수정하였습니다)
알고 있는 버그: 가장 높은 숫자의 파일이 0으로 시작하는 경우 ls -v 옵션이 무시하기 때문에 제대로 동작하지 않습니다. -0 -

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

kirrie의 이미지

제가 파이썬을 몰라서 그러는데, 대충 어떤식으로 리네이밍을 하는 것인가요?

김상욱님의 스크립트에 대한 설명이 좀 애매한 것 같아서요. 이를테면 01.jpg, 02.jpg... 99.jpg, 100.jpg라는 만화 파일이 있는데, 파일명으로 정렬해서 뷰어를 통해 만화를 보면 순서가 꼬인다는 말씀이신가요? 왜 순서가 꼬이죠?

딴지가 아니라, 말씀을 잘 이해를 못해서 질문 드려봅니다. ^^;;

--->
데비안 & 우분투로 대동단결!

무한포옹의 이미지

kirrie wrote:
제가 파이썬을 몰라서 그러는데, 대충 어떤식으로 리네이밍을 하는 것인가요?

김상욱님의 스크립트에 대한 설명이 좀 애매한 것 같아서요. 이를테면 01.jpg, 02.jpg... 99.jpg, 100.jpg라는 만화 파일이 있는데, 파일명으로 정렬해서 뷰어를 통해 만화를 보면 순서가 꼬인다는 말씀이신가요? 왜 순서가 꼬이죠?

딴지가 아니라, 말씀을 잘 이해를 못해서 질문 드려봅니다. ^^;;

문자열 정렬 기준으로 100.jpg 가 99.jpg 보다 우선 순위가 높기 때문에 그렇지요.
내용은 우선 가장 큰 숫자로 된 파일을 찾고 밑이 10인 로그를 이용하여 자릿수를 판별하고 그에 맞추어 인수로 받은 파일들의 이름을 자릿수에 맞추어 0을 끼워넣어주는 것입니다. 같은 길이의 숫자이름이라면 099.jpg 가 100.jpg보다 우선시 되죠.

-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.