>> Edit article
이름
메일
제목
패스워드
간간히 화일 다루기가 귀찮으면 책 찾아가면서 쉘 스크립트를 만들어봅니다. (보통 일괄적으로 화일이름 달고 싶을 때 만들어 보는데....^_^) 오늘도 MP3 화일을 다루기 귀찮아서 하나 맹글어 봤습니다. 화일이 쌓일 수록 어디에 무슨 곡이 있는 지 찾기가 힘들어서 텍스트로라도 인덱스를 만들어 놓고 싶었는데, 이게 노가다가 장난이 아니더군요. 근데, 스크립트로 'tail' 하고 'head' 로 장난을 하니...후후... 언제나 느끼는 거지만, 쉘 스크립트...너무 좋습니다. 파이프를 사용해서 조그마한 프로그램들을 모듈처럼 사용할 수도 있고... 하여간, 미숙하기는 하지만 아래는 제가 만들어본 스크립트입니다. 더 공부해서 고쳐야겠지만서도요..... =========================================================== =========================================================== # 현재 디렉토리 이름을 알아냅니다. C_PATH=`pwd` C_PATH=${C_PATH##*/} List_File=`echo $C_PATH.txt` # List File 을 만듭니다. # FAT에서 공백이 있는 긴 이름 화일일 수도 있기때문에, # "$List_File" 만들었습니다. echo -ne "**** $C_PATH ****" > "$List_File" echo -ne "\n\n" >> "$List_File" # 현재 디렉토리의 MP3 목록으로 ID를 받아냅니다. for MP3_FILE in $(ls *.[Mm][Pp][23]) do MP3_TITLE=`tail --bytes=125 $MP3_FILE|head --bytes=30` MP3_TITLE=`echo $MP3_TITLE` # 공백을 지우기 위해서 echo를 사용했습니다. MP3_ARTIST=`tail --bytes=125 $MP3_FILE|head --bytes=60|tail --bytes=30` MP3_ARTIST=`echo $MP3_ARTIST` # Time은 Comment Field에 기재해서 사용하고 있습니다...저는요..^_^ MP3_TIME=`tail --bytes=31 $MP3_FILE|head --bytes=30` MP3_TIME=`echo $MP3_TIME` echo -ne "${MP3_FILE%*.[Mm][Pp][23]} : $MP3_TITLE - $MP3_ARTIST ($MP3_TIME)\n" >> "$List_File" done =========================================================== =========================================================== 후후...진짜 간단하지 않습니까?? 뭐, 기능도 없고, 잘 하시는 분은 더 간단히 만드시겠지만, 모르는 저도 이 정도면 만들 수 있다는 사실이...흑흑..... GUI가 판을 치는 세상에서도 쉘이여 영원하라...... 꼬리...... MP3 스펙을 구할 수가 없어서 열심히 tail로 Field 구성을 알아 봤습니다. 끝에서 125Bytes에 기재가 되더군요.(TAG라는 단어 뒤에 붙습니다) Title(30) + Artist(30) + Album(30) + Year(4) + Comment(30) + '/'(1) 노가다노가다....-_-;;;
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved