텍스트처리_04 입력 파일 해시값을 줄마다 추가해서 출력하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: paste, md5sum, read, awk
키워드: 해시, 페이스트, 컬럼
사용처: 파일에서 입력값을 읽어서 줄마다 해시값을 계산해서 CSV 파일에 출력하고 싶을 때
실행예제
$ cat data.txt
abcdefg
password
123456
$ ./paste.sh data.txt
abcdefg,7ac66c0f148de9519b8bd264312c4d64
password,5f4dcc3b5aa765d61d8327deb882cf99
123456,e10adc3949ba59abbe56e057f20f883e
스크립트
#!...
텍스트처리_03 파일 앞머리의 셔뱅(shebang, "#!/bin/sh" 등)을 추출해서 스크립트에 따라 확장자 붙이기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: head, mv
키워드: 셔뱅, shebang, 확장자, 첫줄
사용처: 확장자가 없는 스크립트 파일에 자동으로 확장자를 부여하고 싶을 때
실행예제
$ ./shebang.sh script
'script' -> 'script.sh'
$ ./shebang.sh sample1
'sample1' -> 'sample1.pl'
스크립트
#!/bin/sh
# 대상 스크립트 파일이 있는지 확인
if [ ! -f "$1" ]; then
echo "지정한 파일을 찾지 못했습니다: $1" >&2
...
텍스트처리_02 텍스트 파일에서 구분자를 지정해서 컬럼 추출하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: env, grep, cut
키워드: 환경 변수, 분리자, 컬럼
사용처: 설정된 환경 변수 목록을 얻어서 어떤 변수명이 정의되어 있는지 확인하고 싶을 때
실행예제
$ ./env.sh #----------- 환경 변수 TMPVAR가 없으면 start.sh가 실행되지 않음
TMPVAR is null
$ export TMPVAR=1 #---- 환경 변수 TMPVAR 설정
$ ./env.sh
TMPVAR is 1
[START] start.sh
스크립트
#!/bin/sh
# 미리 설정하지 않으면 에러가 발생하는 환경 변...
텍스트처리_01 ID가 적힌 목록 파일에서 ID를 추출할 때 ID 끝 문자로 정렬하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: rev, sort
키워드: 끝 문자, 정렬, ID 목록
사용처: ID 목록 파일의 끝 문자 순서대로 정렬하여 처리하고 싶을 때
실행예제
$ cat id.lst #-------- 순서가 엉망인 ID 목록 파일
PPX0_2
AN39_9
UIA5_3
BA06_7
QXD3_0
$ ./revsort.sh id.lst #-------- 끝 문자(숫자)로 정렬
QXD3_0
PPX0_2
UIA5_3
BA06_7
AN39_9
스크립트
#!/bin/sh
# 임시 파일 지정
tmpfile="sort.lst"
# 대상 ID 파일...
날짜처리_04 윤년인지 확인하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: expr, test, ls
키워드: 윤년, 나머지
사용처: 2월 말에 작성된 로그 파일을 선택하고 싶을 때
실행예제
$ ./leapyear.sh
leap year: 2012
/var/log/myapp/access.log-20120229
스크립트
#!/bin/sh
# 네 자리 년도 얻기
year=$(date '+%Y') #--------------------------------------- 1
logfile="/var/log/myapp/access.log-"
# 년도를 나눈 나머지 계산
mod1=$(expr...
날짜처리_03 한 달 전에 만든 로그 파일을 일괄 아카이브 하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: date, tar
키워드: 전월, 월말
사용처: 오늘 날짜에서 지난달 년월표기(YYYYMM)를 조합해서 해당 날짜가 파일명에 있는 로그 파일을 아카이브하고 싶을 때
실행예제
$ ./lastmonth.sh
/var/log/myapp/access.log-20130201
/var/log/myapp/access.log-20130218
/var/log/myapp/access.log-20130222
/var/log/myapp/access.log-20130228
스크립트
#!/bin/sh
logdir="/var/log/mya...
날짜처리_02 오늘이 말일인지 판별하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: date
키워드: 월말
사용처: 오늘이 달의 마지막 날인지 스크립트에서 판정하고 싶을 때
실행예제
$ ./monthday.sh 월별 리포트 작성하는 외부 스크립트 실행
스크립트
#!/bin/sh
tomorrow=$(date "+%d" -d '1 day') # ------ 1
if [ "$tomorrow" = "01" ]; then # -------- 2
# 오늘이 말일이라면 월별 리포트를 작성하는 외부 스크립트 실행
./monthly_report.sh
fi
해설
이 스크...
207 post articles, 30 pages.