sed에서 원하는 문자열을 추출하는 방법

1372 단어 ShellScriptsed
요 전날 로그 파일에서 데이터를 추출하는 배치를 만들었습니다.
여러가지 시험해, 도와 주고, 드디어 할 수 있었습니다. 메모해야!

하고 싶은 일



로그 파일에서 2016-xx-xx 날짜 부분과 마지막 insert number 숫자를 추출하여
파일에 저장합니다. 

~이미지~
원래 로그 파일

log.txt
/home/Logs/log.20160101:2016-01-01 07:32:25 INFO:  insert number [101]
/home/Logs/log.20160102:2016-01-02 07:32:18 INFO:  insert number [202]
/home/Logs/log.20160103:2016-01-03 07:32:20 INFO:  insert number [303]
/home/Logs/log.20160104:2016-01-04 07:32:28 INFO:  insert number [404]
/home/Logs/log.20160105:2016-01-05 07:32:16 INFO:  insert number [505]

결과 파일

result.txt
2016-01-01 101
2016-01-02 202
2016-01-03 303
2016-01-04 404
2016-01-05 505

실행 방법



실행 스크립트
cat log.txt | sed -e 's/.*\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\).*insert number \[\([0-9]\+\)\]/\1 \2/g' > result.txt

참고 : 문자열에서 특정 문자 추출

※ sed 부분의 설명



괄호()로 데이터의 범위는 특정할 수 있다.
지정의 1번과 2번째의 내용\1\2에 옮겨놓는다. (\는, 아래의 화상에서는 원 마크로 표시)

좋은 웹페이지 즐겨찾기