텍스트처리_15 정해진 자릿수 숫자에 하이픈 넣기(우편번호 등)
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: getops, shift, awk, grep, sed
키워드: 옵션, 자릿수, 스페이스 제거, 우편번호
사용처: 우편번호나 전화번호 같은 텍스트에서 정해진 자리에 하이픈을 넣거나 삭제하고 싶을 때
실행예제
$ cat number-nohyphen.txt # 숫자뿐인 우편번호
5620001
2250022
A1200B1
$ ./num-hyphen.sh number-nohyphen.txt # 하이픈 추가
561-0001
225-0022
$ cat number-hyphen.txt # 하이픈이 있는 우편번호
562-0001
32...
텍스트처리_14 오른쪽 정렬로 숫자를 표시하는 텍스트 표 만들기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: grep, printf
키워드: 서식 출력, 텍스트 변형, 포맷
사용처: 숫자를 카운트하는 명령어에서 세로 위치를 정리해서 리포트하고 싶을 때
실행예제
$ ./printf.sh
1 (app20210409.log)
73 (app20210410.log)
146 (app20210412.log)
11 (info.log)
5 (system.log)
스크립트
#!/bin/sh
# 검색할 문자열 정의
search_text="ERROR 19:"
# 현재 디렉터리에서 확장자가 .log인 파일을 순서대...
텍스트처리_13 sed로 HTML 파일 속성을 바꿀 때 슬래시 이스케이프 피하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: sed
키워드: 슬래시, 이스케이프
사용처: sed 명령어로 /를 포함한 문자열을 치환할 때 일일이 이스케이프하고 싶지 않을 때
실행예제
$ ./sed-slash.sh
화면에 아무것도 표시되디 않지만 HTML 파일에 있는 /img가 /images/로 치환됨
스크립트
#!/bin/sh
# 출력 디렉터리 정의
outdir="newdir"
# 출력 디렉터리 존재 확인. 없으면 에러 종료
if [ ! -f "$outdir" ]; then #---------------------------------------- 1(i...
텍스트처리_12 웹 접속 로그에서 파일별 접속 횟수 집계하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: awk, sort, uniq
키워드: 접속 로그, 로그 분석, 페이지 뷰
사용처: 아파치 접속 로그에서 페이지 뷰를 집계하고 싶을 때
실행예제
$ cat access.log
xx.xx.xx.xx - - [06/Jan/2014:05:58:35 +0900] "GET / HTTP/1.1" 200 83 "-" "-"
yy.yy.yy.yy - - [06/Jan/2014:06:01:43 +0900] "GET /index.html HTTP/1.1" 200 304
yy.yy.yy.yy - - [06/Jan/2014:06:01:44 +0900]...
텍스트처리_11 시스템 로그에서 IP 주소마다 횟수 집계하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: sed, sort, uniq
키워드: SSH, 부정 접속, 인증 실패, 로그 추출
사용처: sshd 로그 파일에서 암호 인증에 실패한 IP 주소를 세고 싶을 때
실행예제
# ./ssh-fail.sh
15 10.211.55.2
6 10.211.55.21
2 10.211.55.18
접속해온 IP 주소마다 ssh 암호 인증에 실패한 횟수가 많은 순서로 표시
스크립트
#!/bin/sh
# sshd 로그 파일
securelog="/var/log/secure"
# IP 주소를 추출하기 위한 패턴. 변수에 저장
p...
텍스트처리_10 웹 서버 로그 파일에서 특정 상태값만 취득하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: awk
키워드: 접속 로그, 로그 해석, 변형
사용처: 아파치 접속 로그에서 스테이터스 404(Not Found) 에러를 반환한 리퀘스트 로그를 가공해서 파일명만 추출하고 싶을 때
실행예제
$ cat access_log
xx.xx.xx.xx - - [06/Jan/2014:05:58:35 +0900] "GET / HTTP/1.1" 200 83 "-" "-"
yy.yy.yy.yy - - [06/Jan/2014:06:01:43 +0900] "GET /index.html HTTP/1.1" 200 304
yy.yy.yy.yy - - [0...
텍스트처리_09 로그 파일 컬럼 위치를 바꿔서 출력하고 보기 쉽게 바꾸기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: awk
키워드: 접속 로그, 로그 해석, 변형
사용처: 아파치 접속 로그에서 필요한 컬럼을 추출하고, 순서를 바꾸고 싶을 때
실행예제
$ cat access_log
xx.xx.xx.xx - - [06/Jan/2014:05:58:35 +0900] "GET / HTTP/1.1" 200 83 "-" "-"
yy.yy.yy.yy - - [06/Jan/2014:06:01:43 +0900] "GET /index.html HTTP/1.1" 200 304
yy.yy.yy.yy - - [06/Jan/2014:06:01:44 +0900] "GET...
197 post articles, 29 pages.