sed 명령이 사용된 정규식에 대해 올바른 출력을 제공하지 않습니다.

sed 명령이 사용된 정규식에 대해 올바른 출력을 제공하지 않습니다.

로그 파일에서 일련의 시간 간격 사이의 데이터를 가져오려고 합니다. 그러나 종료일에 대한 완전한 데이터는 확보되지 않습니다.

사용된 명령은 다음과 같습니다.

 sed -n '/26/Nov/2018/,/30/Nov/2018/ p' /path/file.log 

위의 로그 파일에서 얻은 데이터는 다음과 같습니다.

 192.168.0.123 - - [25/Nov/2018:13:24:59 +0530] "Data 1"
 192.168.0.123 - - [26/Nov/2018:13:24:59 +0530] "Data 2"
 192.168.0.123 - - [26/Nov/2018:13:25:09 +0530] "Data 3"
 192.168.0.123 - - [27/Nov/2018:13:25:09 +0530] "Data 4"
 192.168.0.123 - - [27/Nov/2018:13:25:11 +0530] "Data 5"
 192.168.0.123 - - [27/Nov/2018:13:25:53 +0530] "Data 6"
 192.168.0.123 - - [28/Nov/2018:13:25:53 +0530] "Data 7"
 192.168.0.123 - - [29/Nov/2018:13:25:53 +0530] "Data 8"
 192.168.0.123 - - [30/Nov/2018:13:25:53 +0530] "Data 9"
 192.168.0.123 - - [30/Nov/2018:13:25:53 +0530] "Data 10"
 192.168.0.123 - - [01/Dec/2018:13:25:53 +0530] "Data 11"
 192.168.0.123 - - [01/Dec/2018:13:25:53 +0530] "Data 12"

답변1

/이는 sed match 명령의 구분 기호와 일치하는 문자열의 일부를 모두 사용하고 있기 때문입니다 . 안에서 탈출해야 합니다 /. 이 시도:

$  sed -n '/26\/Nov\/2018/,/30\/Nov\/2018/ p' file.log 
 192.168.0.123 - - [26/Nov/2018:13:24:59 +0530] "Data 2"
 192.168.0.123 - - [26/Nov/2018:13:25:09 +0530] "Data 3"
 192.168.0.123 - - [27/Nov/2018:13:25:09 +0530] "Data 4"
 192.168.0.123 - - [27/Nov/2018:13:25:11 +0530] "Data 5"
 192.168.0.123 - - [27/Nov/2018:13:25:53 +0530] "Data 6"
 192.168.0.123 - - [28/Nov/2018:13:25:53 +0530] "Data 7"
 192.168.0.123 - - [29/Nov/2018:13:25:53 +0530] "Data 8"
 192.168.0.123 - - [30/Nov/2018:13:25:53 +0530] "Data 9"

관련 정보