X num of lines before and after


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers X num of lines before and after
# 1  
Old 09-15-2008
X num of lines before and after

I have a slew of files for historical reference.

Each file has a unique line in the file, such as "Today's datetime is:"

Each file also contains a unique set of characters on line X, such as "DMX Info." This line number will be different each time a new file is generated. So, for one file, it might be line 100, whereas the next file might be line 120.

The important info I'd like is always two lines below line X above, but not unique enough to simply grep on by itself. It's called "High Value" and there are several lines like this in each file.

QUESTION:
How do I grep for "Today's datetime is" AND two lines below line X? I don't care if line X is printed. It's the line two lines below that I'm looking for.

THANKS!
# 2  
Old 09-15-2008
not the cleanest solution but:

Code:
awk '/Today's datetime is/{print}/DMX Info/{print t}!/DMX Info/{t=s;s=$0}' file

should work
# 3  
Old 09-15-2008
Thanks for that! Looks clean enough, but appears to be grabbing two lines before line X. I'm looking for two lines after line X. Any insight?

Thanks again!
# 4  
Old 09-15-2008
Try this:
Code:
awk '/Today.s datetime is/;/DMX Info/{getline;print;getline;print;exit}'

Regards
# 5  
Old 09-15-2008
That almost works, but it appears to only scan one file, whereas I'm trying to scan hundreds. Also, anyway to omit printing the first line after line X, and only print the second.

This is very helpful, so thanks guys (or gals).

Last edited by jjp; 09-15-2008 at 02:20 PM.. Reason: incorrect
# 6  
Old 09-15-2008
This should omit the first line after x and scan all files in the current directory:

Code:
awk '/Today.s datetime is/;/DMX Info/{getline;getline;print}' *


Last edited by Franklin52; 09-15-2008 at 02:44 PM.. Reason: code adapted
# 7  
Old 09-15-2008
There we go. That works, but it appears the 'exit' won't look in all files. For some reason it only scans one. If I omit the 'exit', it works perfectly.

Thanks. Shell scripting is not my strong point, but I need to get moving on it. Thanks again! Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Hardware

About the max num of physical memory

Can anyone tell me what the max num of physical memery depends? It's the bit number of the data bus? How about the max number of the virtual memory? (1 Reply)
Discussion started by: cateran
1 Replies

2. Shell Programming and Scripting

Simple question on $VAR = num

Hello, I am a begginer on shell scripting and I need a simple advice. I have the following script. The output of DATE is gathered from Oracle and it will be 101115 (for todays date) Therefore the DAY will be sed-ed , and it contains 15 #!/bin/sh DATE=`${LIB}/dt_YYMMDD 0` DAY=`echo $DATE| sed... (5 Replies)
Discussion started by: drbiloukos
5 Replies

3. Shell Programming and Scripting

Find a string in textfile, erase $num lines after that string

I have a textfile containing text similar to the following pattern: STRING1 UNIQUE_STRING1 STRING2 STRING3 STRING4 STRING5 STRING1 UNIQUE_STRING2 STRING2 STRING3 STRING4 STRING5 STRING1 UNIQUE_STRING3 STRING2 STRING3 (6 Replies)
Discussion started by: ilcsfe
6 Replies

4. UNIX for Advanced & Expert Users

Set Caps and Num lock from within X?

Hello, Not sure if this is the right place to post it but.. I have a requirement to set Caps lock and/or Num lock on and off via a Cron job. Now I have working scripts that do the job, but as soon as X starts up the jobs no longer run (well they appear to, but Caps lock and Num lock do not... (0 Replies)
Discussion started by: autotuner
0 Replies

5. Shell Programming and Scripting

perl: Please explain this for me: $hexdigit = (0 .. 9, 'a' .. 'f')[$num & 15];

This is taken from perlop. I can't understand what's going on, please can someone explain this for me? $hexdigit = (0 .. 9, 'a' .. 'f'); to get a hexadecimal digit (2 Replies)
Discussion started by: ksheller
2 Replies

6. Shell Programming and Scripting

Port num incrementing

Hello Guyz These days Iam doing pretty good scripting work that is all because of you fellas.Thank you so much. As it goes ,here comes my next problem.Iam trying to implement automatic port number incrementing. For ex: demo() { echo "Enter for default port: read port ... (5 Replies)
Discussion started by: coolkid
5 Replies

7. Shell Programming and Scripting

tracking sequence num

I have files coming to an input directory every few mins...eg test_00012.txt test_00013.txt test_00014.txt I need to write a script to monitor these and if a file is missing from the sequence I need my script to spot this so I can alert someone... ie... if I got the following:... (1 Reply)
Discussion started by: frustrated1
1 Replies

8. Shell Programming and Scripting

how to convert char to num

how to convert char to num or visa versa i am a beginner how to do it can someone guide me please (2 Replies)
Discussion started by: guhas
2 Replies

9. UNIX for Dummies Questions & Answers

setting num lock on at boot up

Once I knew how to set up a unix file so that the num lock would automatically be on after booting up. How exactly is that done? Unix has final control on the setting of the num lock from off or on to on at the end of the boot up process. Any help will be appreciated, especially if detailed. Oh... (0 Replies)
Discussion started by: jddxxx
0 Replies
Login or Register to Ask a Question