selective printing of lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting selective printing of lines
# 1  
Old 11-03-2008
selective printing of lines

Hi all , i need to grep for a string in a text file and print the string and the 3rd line above it.

As always , Thanks.
# 2  
Old 11-03-2008
If your sed version supports the -B option:

Code:
grep -B 3 '<string>' file | sed '2,3d'

Otherwise with awk:

Code:
awk 'NR==FNR{if(/<string>/){n=NR;next}}FNR==n-3||/<string>/' file1 file1


Last edited by Franklin52; 11-03-2008 at 05:14 PM.. Reason: adding awk solution
# 3  
Old 11-03-2008
Thanks Franklin for yr quick resp, the sed version i have does not support -B option. I tried the awk option and i have trouble in the output of the above command. It prints all occurances of the string i grep for but i am not getting the 3rd line except for the last occurance.

For eg , the sample file would be something like below , i need to grep for 103 and then print the 3rd line above it.

Seqnumber xxxxx
This is line one of a
This is line one of a
This is line 1103 two of a
Seqnumber xxxxx
This is line one of a
This is line one of a
This is line 103 four of a
Seqnumber xxxxx
This is line one of a
This is line one of a
This is line 15603 four of a
Seqnumber xxxxx
This is line one of a
This is line one of a
This is line 103 four of a
Seqnumber xxxxx
This is line one of a
This is line one of a
This is line 1345 four of a
Seqnumber xxxxx
This is line one of a
This is line one of a
This is line 103 four of a


Thanks again.
# 4  
Old 11-03-2008
My thought was that there was just one occurrence of the pattern, try this one:

Code:
awk '{a[NR%4]=$0}/ 103 /{print a[(NR+1)%4];print}' file

Use nawk or /usr/xpg4/bin/awk on Solaris.

Regards
# 5  
Old 11-03-2008
Sweet , thats works like a champ. Thanks Franklin.Smilie

I am glad i found this forum.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Continued trouble matching fields in different files and selective field printing ([g]awk)

I apologize in advance, but I continue to have trouble searching for matches between two files and then printing portions of each to output in awk and would very much appreciate some help. I have data as follows: File1 PS012,002 PRQ 0 1 1 17 1 0 -1 3 2 1 2 -1 ... (7 Replies)
Discussion started by: jvoot
7 Replies

2. Shell Programming and Scripting

awk Selective printing of fields

Hi Gurus, I have following input file. I tried multiple awk combinations to print selected columns without success. HEX ID Name ver FLRGT Start Time Total Shared End Date ----- -------- --- ------ ------------------------ -------------- -------... (4 Replies)
Discussion started by: shunya
4 Replies

3. Shell Programming and Scripting

Selective printing based on matched record

Hi, I have file with thousands of lines somewhat similar to the below 6 lines 06MXXXXXXXXXXXXXXXX 0328 003529 J27300022 MICROSOFT *MSN 06<1 000000001344392 JPN151-85830 MSBILL.INFO F 06<A17087454000328651551 MSBILL.INFO ... (16 Replies)
Discussion started by: dsid
16 Replies

4. Shell Programming and Scripting

Selective printing

I have the following contents in a file ---- CRITICAL: altered for /usr/bin/bin1 ---- OK: /usr/sbin/bin2 result fine ---- OK: /usr/sbin/bin3 result fine ---- CRITICAL: altered for /usr/bin/bin4 ---- OK: /usr/bin/bin5 result fine ---- OK: /usr/bin/bin6 result fine ---- CRITICAL: altered for... (9 Replies)
Discussion started by: anil510
9 Replies

5. Shell Programming and Scripting

selective printing

hi all from below text "abcd,SYS_12345,xyz,PQR, ," I want to print only "abcd,SYS,xyz,PQR, ," i.e. taking only first three 3 chars from 2 string of comma separated file thanks (4 Replies)
Discussion started by: JoeColeEPL9
4 Replies

6. Shell Programming and Scripting

Perl: selective printing of lines

Hi, I have a file with lines like this. 2 7 18 ggcgt anna 2 7 18 hhchc sam 3 7 18 hhdjcc ross 4 7 18 hhcjd jenny 0 8 21 jjdhs sam 3 8 21 kkok bush 2 9 24 kosss BrenhamIf the values of the second column are equal, print only those lines with the least first column value. So in... (5 Replies)
Discussion started by: polsum
5 Replies

7. Shell Programming and Scripting

Copy selective lines from text file

Hello, I have a text file which I need to check for presence of certain tags, and then copy a subsequent portion of text into another file. The tag matching canbe done with Grep but I do not know how to copy selective lines from one file to another. Is it possible do that? I checked up some... (8 Replies)
Discussion started by: ajayram
8 Replies

8. Shell Programming and Scripting

Awk selective printing

Hi, i need help to print number from different field INPUT: Student1 10 20 Student2 30 40 Student3 50 60 Student4 70 80 Desired Output: 1 20-30 2 40-50 3 60-70 Thank you! (5 Replies)
Discussion started by: saint2006
5 Replies

9. Shell Programming and Scripting

sed selective printing

Hi, I have an xml file having serveral smiliar lines as below <INPUT VAR1 ="" DATATYPE ="number(p,s)" VAR2 ="" VAR3 ="3" VAR4="0" VAR5 ="ELEMITEM" VAR6 ="NO" VAR7 ="NOT A KEY" VAR8 ="17" LEVEL ="0" NAME ="UNIX" NULLABLE ="NOTNULL" OCCURS ="0" OFFSET ="19" PHYSICALLENGTH ="15"... (3 Replies)
Discussion started by: dips_ag
3 Replies

10. Shell Programming and Scripting

selective printing awk

Hi there my file looks like this 1 a b c d e f 2 a b b c d e f f g h e t t 3 a c b d e f 4 a b c i want to print the line which has the fields containing ONLY a b c, in this case the line 4. How can i awk it !!!? Many Thanks in advance! (8 Replies)
Discussion started by: saint2006
8 Replies
Login or Register to Ask a Question