awk search pattern


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk search pattern
# 8  
Old 09-20-2010
Assuming starttime and endtime are shell variables:

Code:
starttime="2010 07 19 07 13 19"
endtime="2010 07 19 07 30 00"

awk -F, -v stime="$starttime" -v etime="$endtime" '
BEGIN{gsub(" ","",stime);gsub(" ","",etime)}
/^[0-9]/{
  t=$1
  gsub("[ -:]","",t)
}
t >= stime{p=1}
t > etime{p=0}
p' logfile

# 9  
Old 09-20-2010
Thanks for the input Franklin52, I input the start and end time as follows:
Code:
2010 07 19 10 29 00

Code:
2010 07 19 10 30 00

and got the following lines from the log file:

Code:
2010-07-19 07:37:16
2010-07-19 07:39:00
2010-07-19 07:55:13
2010-07-19 08:00:50
2010-07-19 08:40:04
2010-07-19 08:40:04
2010-07-19 09:18:36
2010-07-19 09:18:36
2010-07-19 09:37:10
2010-07-19 09:37:56
2010-07-19 09:37:56
2010-07-19 09:43:18
2010-07-19 09:43:18
2010-07-19 10:10:31
2010-07-19 10:24:39
2010-07-19 10:28:11
2010-07-19 10:28:11
2010-07-19 10:28:47
2010-07-19 10:28:47
2010-07-19 10:29:00
2010-07-19 10:29:00

I only wanted the last 2 to show up...
# 10  
Old 09-20-2010
Can you post some real lines of your logfile and the desired output?
# 11  
Old 09-20-2010
every file is very large... but I will try to minimize it, I did your search in a folder of log files, which has different dates. So it must have worked for the 2010-07-19 part, but the time part did not work out.

here is a shorter version of a log file:


Quote:
2010-07-19 07:37:16,372 ERROR [WebContainer : 10] class.......
2010-07-19 07:39:00,725 ERROR [WebContainer : 6] class.......
2010-07-19 07:55:13,357 ERROR [WebContainer : 10] class.......
Error code:************************
at *************getPrinters(FormBrokerProxy.java:202)
at ************init>(Unknown Source)
2010-07-19 08:00:50,210 ERROR [WebContainer : 3] class....
and so on...
I tried to output as much as I can without leaking confidential information, thanks.

The desired output would just be the date stamped lines and any lines following it which are not stamped, with the date in between the start and end input time, inclusively.

so if i use the start time as "2010 07 19 07 38 00"
end time as "2010 07 19 07 59 59", it should return:
Quote:
2010-07-19 07:39:00,725 ERROR [WebContainer : 6] class.......
2010-07-19 07:55:13,357 ERROR [WebContainer : 10] class.......
Error code:************************
at *************getPrinters(FormBrokerProxy.java:202)
at ************init>(Unknown Source)

Last edited by a27wang; 09-20-2010 at 04:31 PM..
# 12  
Old 09-20-2010
This is what i get with the given file:
Code:
$ cat file
2010-07-19 07:37:16,372 ERROR [WebContainer : 10] class.......
2010-07-19 07:39:00,725 ERROR [WebContainer : 6] class.......
2010-07-19 07:55:13,357 ERROR [WebContainer : 10] class.......
Error code:************************
at *************getPrinters(FormBrokerProxy.java:202)
at ************init>(Unknown Source)
2010-07-19 08:00:50,210 ERROR [WebContainer : 3] class....
$ awk -F, -v stime="2010 07 19 07 38 00" -v etime="2010 07 19 07 59 59" '
BEGIN{gsub(" ","",stime);gsub(" ","",etime)}
/^[0-9]/{
  t=$1
  gsub("[ -:]","",t)
}
t >= stime{p=1}
t > etime{p=0}
p' file
2010-07-19 07:39:00,725 ERROR [WebContainer : 6] class.......
2010-07-19 07:55:13,357 ERROR [WebContainer : 10] class.......
Error code:************************
at *************getPrinters(FormBrokerProxy.java:202)
at ************init>(Unknown Source)
$

Am I missing something?
# 13  
Old 09-20-2010
Hmm this is weird, originally I made a mistake and changed the variable names to something else I did not declare, but now I just copy your code, or fix the variable names, nothing is getting returned?! I am using cygwin if that helps... I have no idea what's going on.
# 14  
Old 09-20-2010
Have you used a windows editor or is this a file in windows format?

Try to convert them with:
Code:
tr -d '\r' < windowsfile > unixfile

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk -Search pattern through Variable

Hello, We have wrote shell script for multiple file name search pattern. file format: <numner>_<20180809>.txt starting with single number and ending with 8 digits number Command: awk -v string="12_1234" -v serch="^+_+$" "BEGIN{ if (string ~/serch$/) print string }" If sting matches... (4 Replies)
Discussion started by: koti_rama
4 Replies

2. UNIX for Beginners Questions & Answers

Grep/awk using a begin search pattern and end search pattern

I have this fileA TEST FILE ABC this file contains ABC; TEST FILE DGHT this file contains DGHT; TEST FILE 123 this file contains ABC, this file contains DEF, this file contains XYZ, this file contains KLM ; I want to have a fileZ that has only (begin search pattern for will be... (2 Replies)
Discussion started by: vbabz
2 Replies

3. Shell Programming and Scripting

awk search pattern in column

Want to search a pattern in column using the below command which not helpful awk -F"\|" '$1 == '"${VAR}"' {print $1,$2}' file how to search using "==" with variable other than the below case. awk -F"\|" '$1 ~ /'"${VAR}"'/ {print $1,$2}' file (14 Replies)
Discussion started by: Roozo
14 Replies

4. Shell Programming and Scripting

awk with multiple pattern search

Want to fetch a column with multiple pattern using awk. How to achieve the same. Tried cat test address : 10.63.20.92/24 address : 10.64.22.93/24 address : 10.53.40.91/24 cat test | awk '{print $3}' |awk -F "/" '{print $1}' 10.63.20.92 10.64.22.93 10.53.40.91 Is there any... (2 Replies)
Discussion started by: Manasa Pradeep
2 Replies

5. Shell Programming and Scripting

Awk to match a pattern and perform a search after the first pattern

Hello Guyz I have been following this forum for a while and the solutions provided are super useful. I currently have a scenario where i need to search for a pattern and start searching by keeping the first pattern as a baseline ABC DEF LMN EFG HIJ LMN OPQ In the above text i need to... (8 Replies)
Discussion started by: RickCharles
8 Replies

6. Shell Programming and Scripting

awk get search pattern from a file.

Here Is a problem I am facing with awk. Query --> I want to search for a string in a file and print next 15 lines below the matched string. 1.We do not have GNU grep so cannot use grep -A or grep -B commands. 2. Instead of passing the search pattern as a string to awk. I want the awk to... (4 Replies)
Discussion started by: togotutor
4 Replies

7. UNIX for Dummies Questions & Answers

Pattern search using awk

Hi All, I am trying to find numbers with balance greater than 1 and less than equal 2 from the below file using awk Input file num ,bal 100199,1.708 100225,0 100226,0 100228,0.771166 100232,2 output file 100199,1.708 100232,2 I am using the following command for this... (2 Replies)
Discussion started by: pistachio
2 Replies

8. Shell Programming and Scripting

Pattern Search using AWK

Hi All, I have the below file data.txt.Using awk i want to grep all the zone data.Form the below command i can extact data upto of zone i give but i want it should print until next pattern. awk '/^Total Collection /{c=5;next}c-->0' zin45srs08.tools_utilization instead of c=5 is it possible... (5 Replies)
Discussion started by: ajaincv
5 Replies

9. Shell Programming and Scripting

AWK:- matching pattern search

Dear Friends, I have a flat file. To pick certain details we have written an awk where we are facing difficulty. Sample of flat file. line 1 line 2 line 3 line 4 line 5 line 6 line 7 line 8 line 9 line 10 line 11 line 12 line 13 line 14 (Matching pattern "Lkm_i-lnr:"can be... (4 Replies)
Discussion started by: anushree.a
4 Replies

10. Shell Programming and Scripting

blind search pattern with AWK

Hello, I am using a if condition within my awk script and I have a problem with the search pattern. I would like awk to find all the fields starting with 123. For now I have something like that: awk '{for(i=1;i<9;i+=2)if($i=="123"...)print $i}' test but that is not working as... (2 Replies)
Discussion started by: jolecanard
2 Replies
Login or Register to Ask a Question