reading lines from a file between two search patterns


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting reading lines from a file between two search patterns
# 1  
Old 10-17-2011
Java reading lines from a file between two search patterns

Hi,

I am new to shell scripting and is working on a script to extract lines from a log file between two time stamps using awk command. After some research I used following command:
Code:
awk '/01 Oct 2011/{p=1} /10 Oct 2011/{p=0} p' test.log >> tmp.log

This works fine. But now i want to convert the hard coded dates to variable and have following command, but that does not work. I do not see any error message either

Code:
date1="16 Oct 2011"
date2="17 Oct 2011"
awk -v "d1=${date1}" -v "d2=${date2}" '/d1/{p=1} /d2/{p=0} p' test.log >> tmp.log

Any help on this would be greatly appreciated. If you think there is a better way of doing this then please suggest.

Thanks in advance...
# 2  
Old 10-17-2011
Give a try with :
Code:
 awk -v d1="${date1}" -v d2="${date2}" '$0~d1{p=1} $0~d2{p=0} p' test.log >> tmp.log

This User Gave Thanks to ctsgnb For This Post:
# 3  
Old 10-17-2011
Thanks... that works perfectly... can you please explain me the usage '$0~d1{p=1} $0~d2{p=0} p'. So i have a better understanding of this
# 4  
Old 10-17-2011
$0means : current line
~means : contains the pattern
d1 your variable will be interpreted so the ~ operator will try to find the contend of your d1 variable in $0


$0~d1will search for the content of variable d1 into the current line
$0~/d1/with this notation, awk will parse what is inside the / / as being a regular experession (using the extended character set) so in this case, it will search for the litteral string "d1" into the current line


This code use p as a flag. The flag is turned on and off with 1 and 0.
By default a non zero value means 'TRUE' otherwise 'FALSE', if the last awk instruction (here: p ) is true, then the current line is printed, if false, nothing is printed.
This is the default behaviour of awk for displaying stuff until another behaviours is explicitly coded with print/printf/getline/next or some other instruction that may have an influence on the output.

Last edited by ctsgnb; 10-17-2011 at 03:03 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search for patterns on different lines

im using the following code to search a log for entries on two different lines: awk 'BEGIN{count=0} /'"${firstpattern}"'/,/'"${secondpattern}"'/ { print; if ($0 ~ /'"${thirdpattern}"'/){count++}; } END { print count }' data.txt firstpattern="start error log" secondpattern="i am logging the... (1 Reply)
Discussion started by: SkySmart
1 Replies

2. Shell Programming and Scripting

awk search patterns from file in another

I would like to grep for aaa and bbb and ccc from one line in file1.txt in any order on a line on file2.txt file1.txt aaa bbb ccc ddd fff ggg hhh ddd jjj jjj cccfile2.txt aaa bbb ccc ddd fff ggg --> output whole line since it matches with aaa bbb ccc of file1.txt aaa ddd jjj hhh --> no... (1 Reply)
Discussion started by: sdf
1 Replies

3. Shell Programming and Scripting

How to search 2 separate patterns from a 2nd file.?

Hi Guys, Need your urgent support please. I have a file with 3 separate strings separated by a comma and 2nd file which has a sentence where I can find these 3 strings. I need to find sentences which do not have these strings and maybe redirect it to a 3rd file. All the 3 strings will occur... (3 Replies)
Discussion started by: danish0909
3 Replies

4. Shell Programming and Scripting

How to search multiple patterns and remove lines from a file?

Hi, I have a file content as below. Table : PAYR Displayed fields: 15 of 15 Fixed columns: 4 List width 0999... (4 Replies)
Discussion started by: shirdi
4 Replies

5. UNIX for Dummies Questions & Answers

Printing the lines using search patterns

Hi all , i need an help here.!!!! i have a file that contains /etc/passwd files from some servers. i need a script which search for presence of a user in the servers. like if i give 51144 to the script. the should be o/p Please help on this..... (4 Replies)
Discussion started by: sudharson
4 Replies

6. Shell Programming and Scripting

to read two files, search for patterns and store the output in third file

hello i have two files temp.txt and temp_unique.text the second file consists the unique fields from the temp.txt file the strings stored are in the following form 4,4 17,12 15,65 4,4 14,41 15,65 65,89 1254,1298i'm able to run the following script to get the total count of a... (3 Replies)
Discussion started by: vaibhavkorde
3 Replies

7. Shell Programming and Scripting

Need help in retrieving log from a UNIX file using the search patterns

Hi everyone, I am trying to retrieve certain log from a big file. The log size can be from 200 - 600 lines. I have 3 search patterns, out of which 2 (first and last lines) search patterns are common for all the transactions but 3rd search pattern (occurs in the middle of transaction) is... (5 Replies)
Discussion started by: msrayudu
5 Replies

8. Shell Programming and Scripting

Searching patterns in 1 file and deleting all lines with those patterns in 2nd file

Hi Gurus, I have a file say for ex. file1 which has 3500 lines in it which are different account numbers and another file (file2) which has 230000 lines in it. I want to read all the lines in file1 and delete all those lines from file2 which has that same pattern as in file1. I am not quite... (4 Replies)
Discussion started by: toms
4 Replies

9. Shell Programming and Scripting

Perl - How to search a text file with multiple patterns?

Good day, great gurus, I'm new to Perl, and programming in general. I'm trying to retrieve a column of data from my text file which spans a non-specific number of lines. So I did a regexp that will pick out the columns. However,my pattern would vary. I tried using a foreach loop unsuccessfully.... (2 Replies)
Discussion started by: Sp3ck
2 Replies

10. UNIX for Dummies Questions & Answers

How to parameterize multiple search patterns and generate a new file

I have one file: 123*100*abcd*10 123*101*abcd*-29*def 123*100*abcd*-10 123*102*abcd*-105*asd I would like to parameterize the search patterns in the following way so that the user could dynamically change the search pattern. *100* and *- (ie *minus) *102* and *- The output that is... (6 Replies)
Discussion started by: augustinep
6 Replies
Login or Register to Ask a Question