특정 시간 범위의 로그에서 정보를 추출하기 위해 쉘 스크립트를 사용하고 싶습니다. 로그의 한 줄은 다음과 같습니다.
[14:58:27:176][15-10-2015]: testing1-vidya-Thu Oct 15 11:49:27 IST 2015
[14:59:27:178][15-10-2015]: testing2-vidya-Thu Oct 15 11:49:27 IST 2015
[15:00:27:179][15-10-2015]: testing3-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:180][15-10-2015]: testing4-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:181][15-10-2015]: testing5-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:182][15-10-2015]: testing6-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:183][15-10-2015]: testing7-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:184][15-10-2015]: testing8-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:191][15-10-2015]: testing9-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:192][15-10-2015]: testing10-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:193][15-10-2015]: testing11-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:208][15-10-2015]: testing12-vidya-Thu Oct 15 11:49:27 IST 2015
[15:04:27:209][15-10-2015]: testing13-vidya-Thu Oct 15 11:49:27 IST 2015
[15:49:27:210][15-10-2015]: testing14-vidya-Thu Oct 15 11:49:27 IST 2015
[13:02:17:209][15-10-2015]: testing13-vidya-Thu Oct 15 11:49:27 IST 2015
[15:04:27:209][16-10-2015]: testing13-vidya-Fri Oct 16 11:49:27 IST 2015
[15:49:27:210][16-10-2015]: testing14-vidya-Fri Oct 16 11:49:27 IST 2015
특정 시간 간격으로 데이터를 추출해야 합니다. 예를 들어 2015년 10월 15일 14시 59분부터 15시 3분까지의 기간은 다음과 같습니다.
[14:59:27:178][15-10-2015]: testing2-vidya-Thu Oct 15 11:49:27 IST 2015
[15:00:27:179][15-10-2015]: testing3-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:180][15-10-2015]: testing4-vidya-Thu Oct 15 11:49:27 IST 2015
[15:01:27:181][15-10-2015]: testing5-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:182][15-10-2015]: testing6-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:183][15-10-2015]: testing7-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:184][15-10-2015]: testing8-vidya-Thu Oct 15 11:49:27 IST 2015
[15:02:27:191][15-10-2015]: testing9-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:192][15-10-2015]: testing10-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:193][15-10-2015]: testing11-vidya-Thu Oct 15 11:49:27 IST 2015
[15:03:27:208][15-10-2015]: testing12-vidya-Thu Oct 15 11:49:27 IST 2015
저는 쉘 스크립팅을 처음 접했습니다. grep 명령을 사용해 보았습니다. 누구든지 나에게 무엇을 해야할지 제안할 수 있나요?
답변1
당신이 사용할 수있는 sed
.
sed -n '/\[14:59/,/\[15:03/p' log
업데이트: SSH를 통한 원격
ssh [email protected] "sed -n -e '/\[14:59/,/\[15:03/p' /var/logfile"
특정 날짜의 관심 시간 사이에 발견된 행만 추출하려면 검색 문자열에 해당 날짜를 포함하십시오.
sed -n '/\[14:59.*15-10-2015*/,/\[15:03.*15-10-2015/p' log
답변2
Grep은 다음과 같이 정규식을 사용할 수 있습니다.
grep -E "^\[(14:59|15:00|15:01|15:02|15:03)" /path/to/file