sed command not giving proper output for regular expression used











up vote
0
down vote

favorite












I am trying to fetch data between a range of time intervals from the log file. However, the complete data is not fetched for the end date.



Below is the command used:



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


The data I am having in the above log file is somewhat like:



 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"









share|improve this question









New contributor




Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • That should give you a syntax error. Please remember to always include any errors you get in your question.
    – terdon
    Dec 4 at 15:19















up vote
0
down vote

favorite












I am trying to fetch data between a range of time intervals from the log file. However, the complete data is not fetched for the end date.



Below is the command used:



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


The data I am having in the above log file is somewhat like:



 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"









share|improve this question









New contributor




Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • That should give you a syntax error. Please remember to always include any errors you get in your question.
    – terdon
    Dec 4 at 15:19













up vote
0
down vote

favorite









up vote
0
down vote

favorite











I am trying to fetch data between a range of time intervals from the log file. However, the complete data is not fetched for the end date.



Below is the command used:



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


The data I am having in the above log file is somewhat like:



 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"









share|improve this question









New contributor




Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I am trying to fetch data between a range of time intervals from the log file. However, the complete data is not fetched for the end date.



Below is the command used:



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


The data I am having in the above log file is somewhat like:



 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"






text-processing sed






share|improve this question









New contributor




Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Dec 4 at 15:19









terdon

127k31245422




127k31245422






New contributor




Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Dec 4 at 14:43









Anant Kumar

1




1




New contributor




Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Anant Kumar is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • That should give you a syntax error. Please remember to always include any errors you get in your question.
    – terdon
    Dec 4 at 15:19


















  • That should give you a syntax error. Please remember to always include any errors you get in your question.
    – terdon
    Dec 4 at 15:19
















That should give you a syntax error. Please remember to always include any errors you get in your question.
– terdon
Dec 4 at 15:19




That should give you a syntax error. Please remember to always include any errors you get in your question.
– terdon
Dec 4 at 15:19










1 Answer
1






active

oldest

votes

















up vote
2
down vote













That's because you are using / both as a separator for the sed match command and as part of the string being matched. You need to escape the internal /. Try this instead:



$  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"





share|improve this answer





















  • Hi @terdon. Sorry I had posted the question removing the backslashes. The problem I am facing is, if the end date is not matching with any date in the file, then it is fetching all the logs till the end of the file. Is there a way to stop it till the date before the date where the data is not present?
    – Anant Kumar
    2 days ago











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






Anant Kumar is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f485908%2fsed-command-not-giving-proper-output-for-regular-expression-used%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
2
down vote













That's because you are using / both as a separator for the sed match command and as part of the string being matched. You need to escape the internal /. Try this instead:



$  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"





share|improve this answer





















  • Hi @terdon. Sorry I had posted the question removing the backslashes. The problem I am facing is, if the end date is not matching with any date in the file, then it is fetching all the logs till the end of the file. Is there a way to stop it till the date before the date where the data is not present?
    – Anant Kumar
    2 days ago















up vote
2
down vote













That's because you are using / both as a separator for the sed match command and as part of the string being matched. You need to escape the internal /. Try this instead:



$  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"





share|improve this answer





















  • Hi @terdon. Sorry I had posted the question removing the backslashes. The problem I am facing is, if the end date is not matching with any date in the file, then it is fetching all the logs till the end of the file. Is there a way to stop it till the date before the date where the data is not present?
    – Anant Kumar
    2 days ago













up vote
2
down vote










up vote
2
down vote









That's because you are using / both as a separator for the sed match command and as part of the string being matched. You need to escape the internal /. Try this instead:



$  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"





share|improve this answer












That's because you are using / both as a separator for the sed match command and as part of the string being matched. You need to escape the internal /. Try this instead:



$  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"






share|improve this answer












share|improve this answer



share|improve this answer










answered Dec 4 at 15:18









terdon

127k31245422




127k31245422












  • Hi @terdon. Sorry I had posted the question removing the backslashes. The problem I am facing is, if the end date is not matching with any date in the file, then it is fetching all the logs till the end of the file. Is there a way to stop it till the date before the date where the data is not present?
    – Anant Kumar
    2 days ago


















  • Hi @terdon. Sorry I had posted the question removing the backslashes. The problem I am facing is, if the end date is not matching with any date in the file, then it is fetching all the logs till the end of the file. Is there a way to stop it till the date before the date where the data is not present?
    – Anant Kumar
    2 days ago
















Hi @terdon. Sorry I had posted the question removing the backslashes. The problem I am facing is, if the end date is not matching with any date in the file, then it is fetching all the logs till the end of the file. Is there a way to stop it till the date before the date where the data is not present?
– Anant Kumar
2 days ago




Hi @terdon. Sorry I had posted the question removing the backslashes. The problem I am facing is, if the end date is not matching with any date in the file, then it is fetching all the logs till the end of the file. Is there a way to stop it till the date before the date where the data is not present?
– Anant Kumar
2 days ago










Anant Kumar is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















Anant Kumar is a new contributor. Be nice, and check out our Code of Conduct.













Anant Kumar is a new contributor. Be nice, and check out our Code of Conduct.












Anant Kumar is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f485908%2fsed-command-not-giving-proper-output-for-regular-expression-used%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Accessing regular linux commands in Huawei's Dopra Linux

Can't connect RFCOMM socket: Host is down

Kernel panic - not syncing: Fatal Exception in Interrupt