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"

関連情報