1. url 주소를 / 기준으로 나누기
tr 명령어로 / (slash) 를 \n (개행) 문자로 변경하여 각각의 문자열을 배열처럼 사용할 수 있도록 나눈다.
#!/bin/bash URL_PARAM=${1} echo "BEFORE : " ${URL_PARAM} URL_ARRAY=$(echo ${URL_PARAM} | tr "/" "\n" ) echo "AFTER : " ${URL_ARRAY} |
실행 : ./test1.sh http://www.테스트.com/fdsafdadf/209412/12412/221211/test.zip 결과 : BEFORE: http://www.테스트.com/fdsafdadf/209412/12412/221211/test.zip AFTER : http: www.테스트.com fdsafdadf 209412 12412 221211 test.zip |
2. 나눈 문자열에서 날짜 정보 추출하기
echo 명령어와 grep 명령어를 조합하여 날짜 정보를 포함한 문자열을 추출한다.
\([0-9][0-9]\) : 00년도 ~ 99년도
\(0[1-9]\|1[0-2]\) : 01월 ~ 12월
\(0[1-9]\|[1-2][0-9]\|30\|31\)' : 01일 ~ 31일
grep -o 옵션을 사용하여 추출된 000_221011_00 문자열에서 날짜 정보 221011 만 추출한다.
#!/bin/bash TEMP="http://www.테스트.com/000_221011_00/download/test.zip" DATE_TEMP=`echo ${TEMP} | grep -o '\([0-9][0-9]\)\(0[1-9]\|1[0-2]\)\(0[1-9]\|[1-2][0-9]\|30\|31\)'` echo ${DATE_TEMP} |
실행 : ./test2.sh 결과 : 221011 |
3. url 파일 다운받기
wget 명령어를 사용하여 web link에 연결된 파일을 다운로드할 수 있다. 사용자 계정도 입력 가능하며 옵션을 통해 다운로드 경로를 지정해줄 수 있다.
- url 주소 : http://www.테스트.com/221010/download/test.zip
- 사용자 id : userid
- 사용자 password : userpw
- 다운로드 위치 : /temp/download/
#!/bin/bash wget --user='userid' --password='userpw' 'http://www.테스트.com/221010/download/test.zip' --directory-prefix='/temp/download/' |
실행 : ./test3.sh 결과 : --2022-11-16 21:03:40-- http://www.xn--9t4b11yi5a.com/221010/download/test.zip Resolving www.xn--9t4b11yi5a.com (www.xn--9t4b11yi5a.com) ... (생략)... |
4. url에서 날짜 정보 추출 후 폴더 생성 및 파일 받는 방법
1번, 2번, 3번 기능을 모두 적용해보았다.
1단계 : paramater로 받은 url 정보를 / 단위로 끊어 배열 형태로 만드다.
2단계 : 배열의 문자열에서 날짜 정보를 추출한다.
3단계 : 날짜 정보로 현재 위치에 폴더를 생성한다.
4단계 : 새로 만든 폴더에 url 파일을 다운로드 및 저장한다.
#!/bin/bash PARAM_URL=$1 DATE="" URL_ARRAY=$(echo $PARAM_URL | tr "/" "\n" ) echo "URL_ARRAY:" ${URL_ARRAY} for tmp in $URL_ARRAY do DATE_TEMP=`echo $tmp | grep -o '\([0-9][0-9]\)\(0[1-9]\|1[0-2]\)\(0[1-9]\|[1-2][0-9]\|30\|31\)'` if [[ ${DATE_TEMP} ]]; then DATE=${DATE_TEMP}; break; fi done echo "DATE:" ${DATE} mkdir ${PWD}/${DATE} wget --user=userid --password='userpw!' ${PARAM_URL} --directory-prefix=${PWD}/${DATE} |
실행 : test4.sh http://www.테스트.com/fdsafdadf/209412/12412/221211/test.zip 결과 : URL_ARRAY: http: www.테스트.com fdsafdadf 209412 12412 221211 test.zip DATE:221211 --2022-11-16 17:47:03-- http://www.xn--9t4b11yi5a.com/fdsafdadf/209412/12412/221211/test.zip Resolving www.xn--9t4b11yi5a.com (www.xn--9t4b11yi5a.com).... (생략) |
'Programming > C++' 카테고리의 다른 글
폴더 내 파일 일치 여부 확인하기. md5sum, find 명령어 조합 (0) | 2022.11.19 |
---|---|
ubuntu 서버에 새로운 계정 추가하기. 계정 추가 후 로그인 안될 때 (0) | 2022.11.19 |
linux diff 명령어 no such file or directory 해결 방법 (0) | 2022.03.05 |
정규식 IP주소만 추출하는 방법 in Qt5 (0) | 2021.11.06 |
swp 파일 삭제해도 괜찮을까? 생성되는 이유(in Linux) (0) | 2021.10.31 |
댓글