The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Extracting a line in a text file terryporter51 Shell Programming and Scripting 5 10-13-2008 06:34 PM
Adding specific text and spaces to each line in a text file hertingm Shell Programming and Scripting 4 08-25-2008 02:34 PM
search and replace a specific text in text file? santosham UNIX for Dummies Questions & Answers 4 06-25-2008 05:53 PM
extracting a set of strings from a text file Deanne Shell Programming and Scripting 2 09-20-2007 11:31 PM
Is extracting specific files from a zip file possible? HLee1981 UNIX for Dummies Questions & Answers 1 10-14-2005 11:06 PM

Reply
 
Submit Tools LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-21-2008
Registered User
 

Join Date: Aug 2008
Location: Reading, UK
Posts: 11
Extracting specific text from a file

Dear All,

I have to extract a a few lines from a log file and I know the starting String and end string(WHich is same ). Is there any simplere way using sed - awk.

e.g. from the following file
--------------------------------------
Some text
Date: 21 Oct 2008
Text to be extracted
Somemore text to be extracted
Date: 21 Oct 2008
Some more text

so I would like to extract the following lines
-------------
Text to be extracted
Somemore text to be extracted
---------------

I know the string "Date: 21 Oct 2008"


One way I can think of is do a grep -n "Date: 21 Oct 2008" filename and then user head and tail.

But I wanted to know is there any simplere way?

Regards,
Rahul
Reply With Quote
Sponsored Links
  #2 (permalink)  
Old 10-21-2008
Registered User
 

Join Date: Oct 2008
Posts: 26
grep might help:
Code:
cat filename.txt |grep "string_in_the_file"
J.
Reply With Quote
  #3 (permalink)  
Old 10-21-2008
Registered User
 

Join Date: Aug 2008
Location: Reading, UK
Posts: 11
simple grep will not help because I know the starting pattern and end pattern and I need all the text between these two patterns.
Reply With Quote
  #4 (permalink)  
Old 10-21-2008
Registered User
 

Join Date: Sep 2008
Posts: 205
Hi,

try:

sed -n '/^start/,/^end/{/^start\|^end/!{p}}' testfile

where testfile is your file to search and start and end are the strings delimiting your pattern. This command will search every piece of text between a line starting with start and a line starting with end, inside this pattern it will print every line which doesn't start with "start" or "end".

HTH

Chris
Reply With Quote
  #5 (permalink)  
Old 10-21-2008
Registered User
 

Join Date: Apr 2008
Posts: 38
try this one:
Code:
awk 'f==0 && /Date: 21/ {f=0; getline; f=1}
       f==1 && /Date: 21/ {f=0}f' inputfilename
Reply With Quote
  #6 (permalink)  
Old 10-21-2008
rubin's Avatar
Registered User
 

Join Date: Nov 2007
Posts: 297
One more,

Code:
awk '/Date: 21/{c=!c;next}c' file
Reply With Quote
  #7 (permalink)  
Old 10-21-2008
Registered User
 

Join Date: Jun 2007
Location: Beijing China
Posts: 880
Code:
sed -n '/Date/,/Date/p' filename | sed '/Date/d'
Reply With Quote
Google The UNIX and Linux Forums
Reply

Bookmarks

Tags
None

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:




All times are GMT -4. The time now is 07:25 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66