sort date로 정렬

이런 식으로 파일을 날자 순대로 정렬하고 싶다.

$cat 파토가과학하고앉아있네FileAndTitle.txt 
삼테성즈! S7E10 공중 항공모함 실험_ 자판 표준화와 컴퓨터 시대의 세벌식 자판,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1637328376455.mp3,19 Nov 2021
뉴스룸! S7E03 화성 퍼시비어런스 엠바고 속보! 그리고 자연계 5번째의 힘 발견? feat. 박인규 교수,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1617304165488.mp3,02 Apr 2021
과학하고 앉아있네 S7E06 파토의 주화입마 특집,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1626662027566.mp3,18 Jul 2021
격동 500년 수능 특집! 과탐 크레이지 파이널 카운트다운 (보충수업),https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636685356545.mp3,11 Nov 2021
격동 500년 수능 특집! 과탐 크레이지 파이널 카운트다운 (2부),https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636196086460.mp3,06 Nov 2021
격동 500년 수능 특집! 과탐 크레이지 파이널 카운트다운 (1부),https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636098635289.mp3,05 Nov 2021
격동 500년! S7E05 튀는 옥수수로 노벨상까지. 바바라 매클린톡!,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1623343073874.mp3,11 Jun 2021
격동 500년! S7E03 태양의 정체를 밝히다! 세실리아 페인.,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1617934621403.mp3,09 Apr 2021
삼테성즈! S7E09 누리호_ 초음속 순항미사일_ 공병우 타자기,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1634282011655.mp3,15 Oct 2021
뉴스룸! S7E05 배아 줄기세포_ 뮤온_ 그리고 암흑에너지의 진실! feat. K박사_ 곽재식,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1622704402037.mp3,04 Jun 2021
뉴스룸! S7E11 한국의 인공태양_ 국내 개발 수소 엔진_ 생체로봇_ 제임스 웹 우주망원경,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1638521352619.mp3,03 Dec 2021
삼테성즈 S7E05 컨트롤러와 인간공학_ DOS/V의 탄생배경 그리고 거함거포 시대 직전 이야기,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1624605371567.mp3,25 Jun 2021
과학하고 앉아있네 S7E05 의식의 근원을 찾아라 feat. 뇌과학자 장동선 박사,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1624496183412.mp3,23 Jun 2021
과학하고 앉아있네 S7E10 유성의 과학! feat. 한국천문연구원 황정아 박사_ 공학박사 곽재식 작가,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1637916599658.mp3,26 Nov 2021
과학하고 앉아있네 S7E08 우주의 지도를 그리다_ 스피어x! feat. 천문연 정웅섭 박사,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1631863050438.mp3,17 Sep 2021
삼테성즈 S7E06 버진갤럭틱 우주관광_ 한자와 타자기_ 남미의 거함·거포 경쟁,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1627037475553.mp3,23 Jul 2021
삼테성즈! S7E07 물리 엔진과 게임 스토리텔링_ 임어당의 한자 타자기_ 거함·거포 시대의 종말,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1630048724356.mp3,27 Aug 2021
격동 500년! S7E08 약력의 정체를 밝힌 중국의 마리퀴리_ 우젠슝,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1631258788000.mp3,10 Sep 2021
뉴스룸! S7E04 생명연장의 시간표_ 그리고 나의 뇌를 다스리자! feat. 카이스트 김대수 교수,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1620359306326.mp3,07 May 2021
격동 500년! S7E04 세계적인 나비박사 석주명 선생!,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1620965968488.mp3,14 May 2021
과학하고 앉아있네 S7E03 빛은 뭐고 LCD는 뭐고 OLED는 또 뭐냐? feat. 한림대 고재현 교수,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1618471405918.mp3,16 Apr 2021
삼테성즈 S7E03 화제의 메타버스 특집! Feat. 강원대 김상균 교수,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1619141878558.mp3,23 Apr 2021
뉴스룸! S7E06 배고픔의 메커니즘_ 2만4천년만에 깨어난 생물_ 그리고 제임스웹 우주망원경 feat. K박사_ 곽재식 작가,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1625469308983.mp3,05 Jul 2021
(음질보정재업) 삼테성즈! S7E02 딥페이크_ 전기자동차_ NFT_ 비디오게임. Feat. K2박사_ 최팀장,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1616979006251.mp3,28 Mar 2021
격동 500년! S7E07 더위를 물리치고 인류를 구하다_ 윌리스 캐리어,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1628844722616.mp3,13 Aug 2021
격동 500년! S7E11 대한민국의 산림을 되살리다. 현신규,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1639123192915.mp3,10 Dec 2021
뉴스룸! S7E010 요소수 대란_ 돼지 신장 이식_ 노벨 화학상_ 오무아무아,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636763258800.mp3,12 Nov 2021
삼테성즈 S7E04 반도체 대란_ KF21 핵심기술 그리고 게임의 역사2!,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1622166509979.mp3,28 May 2021
삼테성즈! S7E08 SLBM에 담긴 기술_ 한글 맞춤법과 풀어쓰기,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1632468019235.mp3,24 Sep 2021
과학하고 앉아있네 S7E07 기후 위기의 해법은 있을까 feat. 부경대학교 김백민 교수,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1629447892495.mp3,20 Aug 2021
뉴스룸! S7E08 백신 관련 가짜뉴스_ 아프가니스탄 과학계의 위기_ 암흑에너지의 존재를 밝힌 3D 우주지도,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1630654336515.mp3,03 Sep 2021
격동 500년! S7E06 과학계의 아이돌_ 리처드 파인만,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1625818493064.mp3,09 Jul 2021
뉴스룸! S7E09 진짜 같은 합성우유_ 전고체 배터리_ 새로운 중력파 감지,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1633076684830.mp3,01 Oct 2021
뉴스룸! S7E07 현실에 가까워진 워프 드라이브_ 양궁 활과 탄소섬유_ 인간이 견딜 수 있는 온도는? feat. K박사_ 곽재식 작가,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1628235649694.mp3,06 Aug 2021
격동 500년! S7E09 X선 결정학을 불가능의 레벨까지 끌어올리다. 도로시 호지킨,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1633678920442.mp3,08 Oct 2021
과학하고 앉아있네 S7E04 K박사 완전 복귀 특집! 암흑의 물질과 K박사의 어두운 미래,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1621561758166.mp3,21 May 2021
과학하고 앉아있네 S7E9 2021 노벨물리학상 특집,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1634887885321.mp3,22 Oct 2021

sort로 M 옵션을 넣으면 되는데, 한글을 사용한다면 locale을 변경해 줘야 제대로 된다!!

https://stackoverflow.com/questions/12162210/sort-by-just-month-name-and-day-bash
https://stackoverflow.com/questions/11536368/sorting-date-field-in-unix
$ awk -F',' '{print $3,","$2,"," $1;}' 파토가과학하고앉아있네FileAndTitle.txt | LC_ALL=c sort -t' ' -k3nr -k2Mr -k1
03 Dec 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1638521352619.mp3 ,뉴스룸! S7E11 한국의 인공태양_ 국내 개발 수소 엔진_ 생체로봇_ 제임스 웹 우주망원경
10 Dec 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1639123192915.mp3 ,격동 500년! S7E11 대한민국의 산림을 되살리다. 현신규
05 Nov 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636098635289.mp3 ,격동 500년 수능 특집! 과탐 크레이지 파이널 카운트다운 (1부)
06 Nov 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636196086460.mp3 ,격동 500년 수능 특집! 과탐 크레이지 파이널 카운트다운 (2부)
11 Nov 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636685356545.mp3 ,격동 500년 수능 특집! 과탐 크레이지 파이널 카운트다운 (보충수업)
12 Nov 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1636763258800.mp3 ,뉴스룸! S7E010 요소수 대란_ 돼지 신장 이식_ 노벨 화학상_ 오무아무아
19 Nov 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1637328376455.mp3 ,삼테성즈! S7E10 공중 항공모함 실험_ 자판 표준화와 컴퓨터 시대의 세벌식 자판
26 Nov 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1637916599658.mp3 ,과학하고 앉아있네 S7E10 유성의 과학! feat. 한국천문연구원 황정아 박사_ 공학박사 곽재식 작가
01 Oct 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1633076684830.mp3 ,뉴스룸! S7E09 진짜 같은 합성우유_ 전고체 배터리_ 새로운 중력파 감지
08 Oct 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1633678920442.mp3 ,격동 500년! S7E09 X선 결정학을 불가능의 레벨까지 끌어올리다. 도로시 호지킨
15 Oct 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1634282011655.mp3 ,삼테성즈! S7E09 누리호_ 초음속 순항미사일_ 공병우 타자기
22 Oct 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1634887885321.mp3 ,과학하고 앉아있네 S7E9 2021 노벨물리학상 특집
03 Sep 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1630654336515.mp3 ,뉴스룸! S7E08 백신 관련 가짜뉴스_ 아프가니스탄 과학계의 위기_ 암흑에너지의 존재를 밝힌 3D 우주지도
10 Sep 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1631258788000.mp3 ,격동 500년! S7E08 약력의 정체를 밝힌 중국의 마리퀴리_ 우젠슝
17 Sep 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1631863050438.mp3 ,과학하고 앉아있네 S7E08 우주의 지도를 그리다_ 스피어x! feat. 천문연 정웅섭 박사
24 Sep 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1632468019235.mp3 ,삼테성즈! S7E08 SLBM에 담긴 기술_ 한글 맞춤법과 풀어쓰기
06 Aug 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1628235649694.mp3 ,뉴스룸! S7E07 현실에 가까워진 워프 드라이브_ 양궁 활과 탄소섬유_ 인간이 견딜 수 있는 온도는? feat. K박사_ 곽재식 작가
13 Aug 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1628844722616.mp3 ,격동 500년! S7E07 더위를 물리치고 인류를 구하다_ 윌리스 캐리어
20 Aug 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1629447892495.mp3 ,과학하고 앉아있네 S7E07 기후 위기의 해법은 있을까 feat. 부경대학교 김백민 교수
27 Aug 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1630048724356.mp3 ,삼테성즈! S7E07 물리 엔진과 게임 스토리텔링_ 임어당의 한자 타자기_ 거함·거포 시대의 종말
05 Jul 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1625469308983.mp3 ,뉴스룸! S7E06 배고픔의 메커니즘_ 2만4천년만에 깨어난 생물_ 그리고 제임스웹 우주망원경 feat. K박사_ 곽재식 작가
09 Jul 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1625818493064.mp3 ,격동 500년! S7E06 과학계의 아이돌_ 리처드 파인만
18 Jul 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1626662027566.mp3 ,과학하고 앉아있네 S7E06 파토의 주화입마 특집
23 Jul 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1627037475553.mp3 ,삼테성즈 S7E06 버진갤럭틱 우주관광_ 한자와 타자기_ 남미의 거함·거포 경쟁
04 Jun 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1622704402037.mp3 ,뉴스룸! S7E05 배아 줄기세포_ 뮤온_ 그리고 암흑에너지의 진실! feat. K박사_ 곽재식
11 Jun 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1623343073874.mp3 ,격동 500년! S7E05 튀는 옥수수로 노벨상까지. 바바라 매클린톡!
23 Jun 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1624496183412.mp3 ,과학하고 앉아있네 S7E05 의식의 근원을 찾아라 feat. 뇌과학자 장동선 박사
25 Jun 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1624605371567.mp3 ,삼테성즈 S7E05 컨트롤러와 인간공학_ DOS/V의 탄생배경 그리고 거함거포 시대 직전 이야기
07 May 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1620359306326.mp3 ,뉴스룸! S7E04 생명연장의 시간표_ 그리고 나의 뇌를 다스리자! feat. 카이스트 김대수 교수
14 May 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1620965968488.mp3 ,격동 500년! S7E04 세계적인 나비박사 석주명 선생!
21 May 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1621561758166.mp3 ,과학하고 앉아있네 S7E04 K박사 완전 복귀 특집! 암흑의 물질과 K박사의 어두운 미래
28 May 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1622166509979.mp3 ,삼테성즈 S7E04 반도체 대란_ KF21 핵심기술 그리고 게임의 역사2!
02 Apr 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1617304165488.mp3 ,뉴스룸! S7E03 화성 퍼시비어런스 엠바고 속보! 그리고 자연계 5번째의 힘 발견? feat. 박인규 교수
09 Apr 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1617934621403.mp3 ,격동 500년! S7E03 태양의 정체를 밝히다! 세실리아 페인.
16 Apr 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1618471405918.mp3 ,과학하고 앉아있네 S7E03 빛은 뭐고 LCD는 뭐고 OLED는 또 뭐냐? feat. 한림대 고재현 교수
23 Apr 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1619141878558.mp3 ,삼테성즈 S7E03 화제의 메타버스 특집! Feat. 강원대 김상균 교수
28 Mar 2021 ,https://cdn-cf.podty.me/meta/episode_audio/22286/174371_1616979006251.mp3 ,(음질보정재업) 삼테성즈! S7E02 딥페이크_ 전기자동차_ NFT_ 비디오게임. Feat. K2박사_ 최팀장

,로 구분된 파일 중 3번째에서 다시 순서대로 정렬해야 된다. sort가 multiplie seperator를 지원하지 않아 awk로 순서를 바꿨다.

LC_ALL=c가 없어 날자 순대로 정렬되지 않음은 충격이다.

bash 스크립트로 사진정보를 mysql로 업데이트(버전 업)

기존 파일을 조금 업데이트 했다.

카톡 등 다른 사람에게 받은 사진에서 정보를 추출할 수 없다. 아쉬운대로 기록한 날을 찾아 기록했다.

       date=$(eval "awk 'BEGIN{FS=\" \";}/DateTimeOriginal/{print \$4}' temp")
        time=$(eval "awk 'BEGIN{FS=\" \";}/DateTimeOriginal/{print \$5}' temp")

        #2018-9-29 삽입.
        #파일 중, null로 date가 입력되는 파일에 파일 생성 날자로 강제로 삽입.
        if [ -n $date]
        then
            date=$(ls $CMD -lh --full-time | awk '{print $6}')
            echo "date is", $date
        fi


        if [ -n $time]
        then
            time=$(ls $CMD -lh --full-time | awk '{print $7}'| cut -d "." -f 1)
        fi

        #

        #latitudeRef=$(eval "awk 'BEGIN{FS=\" \";}/GPSLatitudeRef/{print \$4}' temp")
        latitude=$(eval "awk 'BEGIN{FS=\" \";}/GPSLatitude/{print \$4}' temp")
        #longitudeRef=$(eval "awk 'BEGIN{FS=\" \";}/GPSLongitudeRef/{print \$4}' temp")
        longitude=$(eval "awk 'BEGIN{FS=\" \";}/GPSLongitude/{print \$4}' temp")

podcast 자동 다운로드 스크립트

홈서버 구축으로 plexmediaserver를 사용하고 있는데 podcast를 들을려고 한다..

안드로이드 앱으로 들어도 되는데 잘 듣던 팥빵이 회원가입을 요구하고 있어서…짜증이 났다..
전에 누가 tedtalks를 자동으로 다운로드 받는 스크립트를 작성했는데, 거기에서 좀 수정을 했다..

3가지 정도 되는데…
1. 지적 대화를 위한 넓고 얕은 지식
2. 이진우의 손에잡히는 경제
3. 파토의 과학과 사람들
4. bbc 6minute english
정도 된다..

원문은 여기에서 다운로드 받았다.

#!/bin/sh
#
# TEDTalks Downloader
#
# Copyright (C) 2009  Denver Gingerich
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.


#cron을 위한 cd
cd /home/now0930/ExtHDD2/PODcast/PODcast

echo "TEDTalks Downloader v0.1"
echo "by Denver Gingerich (http://ossguy.com/)"
echo

which wget
if [ $? -eq 0 ]; then
	echo "Using wget..."
	GET_CMD="wget -O"
else
	which curl
	if [ $? -eq 0 ]; then
		echo "Using curl..."
		GET_CMD="curl -L -o"
	else
		echo "Could not find wget or curl"
		exit 2
	fi
fi
echo

podcast_address=http://minicast.imbc.com/PodCast/pod.aspx?code=1000671100000100000
FEED=feed_podcast.xml
URLS=urls_podcast


DIRNAME=이진우_손에잡히는경제

rm -f ${FEED}
${GET_CMD} ${FEED} ${podcast_address}
#${GET_CMD} ${FEED} http://minicast.imbc.com/PodCast/pod.aspx?code=1000674100000100000 

#${GET_CMD} ${FEED} http://feeds.feedburner.com/tedtalks_video
#손에 잡히는 경제 다운로드 주소.. 
grep 'type="audio/mpeg"' ${FEED} | \


#아래는 다운로드 받을 기간....
grep '201607\|201605' | \
sed -e 's/^ *<enclosure url="\([^"]*\)" type="audio\/mpeg" length="" \/>/\1/g' > ${URLS};


mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	URL=`echo ${line}`

	#URL=`echo ${line} | cut -d: -f2-`
	FILENAME=`basename ${URL}|tr -d '\r'`
	
	echo $URL
	echo $FILENAME

	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..



#TED talks audio
rm -f ${FEED}
podcast_address=http://feeds.feedburner.com/TEDTalks_audio

${GET_CMD} ${FEED} ${podcast_address}


grep '<media:content' ${FEED} \
 | sed -e 's/^.*<media:content url="\([^"]*\)" fileSize="\([^"]*\).*$/\2:\1/g' | cut -d "?" -f 1 \
 > ${URLS}

mkdir -p TEDtalks
cd TEDtalks
for line in `cat ../${URLS}`; do
	SIZE=`echo ${line} | cut -d: -f1`
	URL=`echo ${line} | cut -d: -f2-`
	FILENAME=`basename ${URL}`

	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..

DIRNAME=파토의과학

rm -f ${FEED}
podcast_address=http://pod.ssenhosting.com/rss/scienceppl/sciencewithpeople.xml

${GET_CMD} ${FEED} ${podcast_address}

grep 'type="audio/mpeg"' ${FEED} | \
cut -d "\"" -f2 > ${URLS};
#sed -e 's/^ *<enclosure url="\([^"]*\)" type="audio\/mpeg3" length="" \/>/\1/g' > ${URLS};


mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	#echo "출력분"
	#URL=`echo ${line} | cut -d'"' -f2-`
	URL=`echo ${line}`
	FILENAME=`basename ${URL}|tr -d '\r'`

	#echo ${URL}
	#echo ${FILENAME}
	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


<< 'COMMENT'

COMMENT




cd ..



#BBC 6minute English
DIRNAME=Bbc6Min

rm -f ${FEED}
rm -f ${URLS}
podcast_address=http://www.bbc.co.uk/programmes/p02pc9tn/episodes/downloads

${GET_CMD} ${FEED} ${podcast_address}

sed -e 's/</\r\n/g' ${FEED}| grep mp3 |\
cut -d "\"" -f4 > ${URLS};

#sed -e 's/^ *<enclosure url="\([^"]*\)" type="audio\/mpeg3" length="" \/>/\1/g' > ${URLS};


mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	#echo "출력분"
	#URL=`echo ${line} | cut -d'"' -f2-`
	URL=`echo ${line}`
	FILENAME=`basename ${URL}|tr -d '\r'`

	#echo ${URL}
	#echo ${FILENAME}
	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..

#지대넓얕
DIRNAME=지대넓얕

rm -f ${FEED}
rm -f ${URLS}
podcast_address=http://pod.ssenhosting.com/rss/rrojia2/rrojia2.xml

${GET_CMD} ${FEED} ${podcast_address}

xpath -e '//enclosure/@url' ${FEED} |\
cut -d "\"" -f2 > ${URLS}

#sed -e 's/</\r\n/g' ${FEED}| grep mp3 |\
#cut -d "\"" -f4 > ${URLS};

mkdir -p ${DIRNAME}
cd ${DIRNAME}
for line in `cat ../${URLS}`; do
	#SIZE=`echo ${line} | cut -d: -f1`
	#echo "출력분"
	#URL=`echo ${line} | cut -d'"' -f2-`
	URL=`echo ${line}`
	FILENAME=`basename ${URL}|tr -d '\r'`

	#echo ${URL}
	#echo ${FILENAME}
	if [ ! -f "${FILENAME}" ]; then
#	 || [ ${SIZE} -ne `ls -l "${FILENAME}" | awk '{print $5}'` ]; then
		rm -f "${FILENAME}"
		${GET_CMD} "${FILENAME}" "${URL}"
	fi
done


cd ..

#권한 변경..
find ./ -type f -exec chmod 755 {} \;

매일매일 실행하기 귀찮으니, cron에 등록하면 된다.

배시 셸 시작하기

learning the bash shell

isbn : 9788979141283
간만에 집에 갔더니 책장 한쪽 구석에 이 책이 꽂혀있었다. 한 10년전에 사서 읽었는데, 반가운 마음이 들어서 다시 읽었다. 혹시나하고 인터넷에 찾아보니 절판이 되었다. 전에 읽었을때 집에 리눅스를 안써 실습을 못해봤다. 그러다보니 가득이나 불친절한 설명의 책이 더 이해가 안되어 대충 보고 던졌던 기억이 난다.

책의 구성은 CLI의 입력방법, bash의 변수 선언, 흐름 제어, 옵션으로 받아들이는 인자 제어, 디버깅 등으로 구성되어있다. 책은 하나의 예제를 처음부터 끝가지 보완하는 방식으로 설명을 한다. 뒷장으로 갈수록 코드의 복잡성,완성도가 높아지고 이를 대상으로 그 장의 개념을 설명한다. 그러나 그렇게 와닿는 예제가 아니라 이해도가 좀 떨어진다. 예제 자체도 개략적인 개념을 익히기에는 너무 길다.

이런 과정을 거치고 끝까지 읽으면 강력한 도구를 손에 넣은 기분이 든다. 어디 무협지의 명검을 손에 넣은 기분? 리눅스를 사용하는 시스템에 ssh를 통해 접속하면 보이는 검은 화면이 있는데 이게 셸이다. 이 책을 이를 효과적으로 사용하는지를 설명한다. 요즘은 gui로 프로그램이 제작되어 있는데 마우스 클릭이 기본이 된다. 이런 프로그램들은 사용하기 쉬우나 사용자가 할수 있는 작업들이 제한되어 있다. 반복적인 작업을 하려면 클릭 노가다를 하루종일 해야한다. 처음 접근은 쉬우나 활용이 떨어진다.

이와 반대로 cli로 불리는 환경에서는 사용자가 자유롭게 입력할수 있다. 유닉스, 리눅스에서 지원하는 각종 유틸리티와 파이프, 리다이렉션 등을 사용하면 gui 환경의 마우스 클릭 수백번을 하나의 명령줄에 할 수 있다. 처음에는 접근하기가 어려운데 활용도가 높다. 리눅스는 모든 하드웨어를 파일로 처리하므로 셸에 익숙해지면 모든 하드웨어도 같은 방식으로 접근이 가능하다.

지금은 명령어 두드리다 안되면 stack over flow같은 커뮤니티에 물어보면 원하는 답을 바로 찾을 수 있다. 십몇년 전에는 그런 공동체가 없었던 것 같다. 원하는 결과가 안나오면 그 부분에서 하염없이 시간을 보내다가 결국 포기한다. 또한 리눅스에서 제공하는 메뉴얼은 초보자들에게 불친절하다. 제공하는 man 페이지를 보고 문제를 해결하기란 거의 불가능 했다. 예제들이 있어야 이해가 되는데 그런 예제들이 거의 없었다. 뜬구름 잡는 마음으로 이런 책을 보면 문제가 해결되기도 하고 아니기도 했다. 마치 시험범위를 정해놓고 나중에 시험보는 방식으로 접근을 했다. 지금은 시험을 책을 펴놓고 본다고 해야하나? 사용하기 많이 쉬워졌다. 이런 책들은 과거보다 효율이 떨어지지만 필요하다. 개념을 익혀야 문제를 풀수 있으니까.

프로그램을 작성하면 한개의 작업이나 천개의 작업이나 그 시간 차이는 없다. 단순 한개의 작업만 하면 코드를 작성하는 시간이 작업하는 시간보다 많다. 그러나 10개 이상 반복작업을 해야 한다면 프로그램을 작성으로 결과를 얻는게 효율도 좋고, 정신적인 스트레스도 없다. 하나의 코드를 작성하고 수정하는데 얼마나 걸리느냐는 그 사람의 내공에 달려있겠지만. 앞으로는 간단한 코드는 직접 작성해야 하는 경우가 많을 것이다. 그런면에서 이런 부분을 공부하는 시간이 아깝지 않을 것이다.