>> Delete No. 6088 article
No. I love Shell Script....

등록 2000-08-15 18:02:36     조회 272
이름 백인규    

간간히 화일 다루기가 귀찮으면 책 찾아가면서 쉘 스크립트를 만들어봅니다.
(보통 일괄적으로 화일이름 달고 싶을 때 만들어 보는데....^_^)

오늘도 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