The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > UNIX for Dummies Questions & Answers
Google UNIX.COM


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Sorting your data with msort iBot UNIX and Linux RSS News 0 05-19-2008 08:20 AM
sorting data using array in ksh ali560045 Shell Programming and Scripting 4 12-04-2007 12:26 AM
Sorting blocks of data alfredo123 Shell Programming and Scripting 8 07-05-2007 07:53 AM
Newbie Awk data sorting i_am_a_robot Shell Programming and Scripting 5 05-04-2007 04:33 AM
Recovering lost folders/files data Yorgy UNIX for Dummies Questions & Answers 0 03-15-2007 01:46 PM

Reply
 
Submit Tools LinkBack Thread Tools Display Modes
  #8 (permalink)  
Old 05-13-2008
Registered User
 

Join Date: May 2008
Posts: 13
Hello era / unix gurus,

I tried the following:
sed -e "x;/^AAA/b" -e "/^BBB/b" -e d number.dat

It works. But I need to divert it to different files .How do I do it. Kindly assist if possible

Thanks and Regards,
Vinay
Reply With Quote
Forum Sponsor
  #9 (permalink)  
Old 05-14-2008
era era is offline
Herder of Useless Cats
 

Join Date: Mar 2008
Location: /there/is/only/bin/sh
Posts: 3,650
Did you try the script I posted above? If so, what's wrong with it? It writes lines matching "^AAA" to AAA.dat and lines matching the regular expression "^BBB" to BBB.dat, is that not what you want?
Reply With Quote
  #10 (permalink)  
Old 05-14-2008
Registered User
 

Join Date: May 2008
Posts: 13
Hello era,

The script u had sent did not work.
Its giving an error
sed: command garbled: /^AAA/wAAA.dat/^BBB/wBBB.dat

That is why I tried
sed -e "x;/^AAA/b" -e "/^BBB/b" -e d number.dat
I am getting answer properly, but I dont know how to route it to different files.
Reply With Quote
  #11 (permalink)  
Old 05-14-2008
era era is offline
Herder of Useless Cats
 

Join Date: Mar 2008
Location: /there/is/only/bin/sh
Posts: 3,650
The script should be on two different lines. You could also try

Code:
sed -e '/^AAA/wAAA.dat' -e '/^BBB/wBBB.dat' number.dat
The sed w command takes a file name to write the line to.
Reply With Quote
  #12 (permalink)  
Old 05-14-2008
Registered User
 

Join Date: May 2008
Posts: 13
Hi era,
sed -e '/^AAA/w AAA.dat' -e '/^BBB/w BBB.dat' number.dat works..
Thanks a lot.
Can I specify the path where it should be stored:
sed -e '/^AAA/w /export/home/vinay/AAA1.dat' -e '/^BBB/w /export/home/vinay/BBB1.dat' a.dat
I hope there is some error

Also does sed provides a way to search specific fields, like the -f1 (1st field) option

Also does the sed -e '/^AAA/w AAA.dat' -e '/^BBB/w BBB.dat' number.dat traverses through the number.dat once or twice.

.. Kindly assist me if possible
Thanks and Regards,
Vinay

Last edited by Vinaykumar1; 05-14-2008 at 01:47 AM.
Reply With Quote
  #13 (permalink)  
Old 05-14-2008
era era is offline
Herder of Useless Cats
 

Join Date: Mar 2008
Location: /there/is/only/bin/sh
Posts: 3,650
sed uses regular expressions only, you can create a regex to look at the first field only with regex constructs; the ^ is already halfway there, as it forces the match to happen at beginning of line. Suppose the field separator is a vertical bar; then you can just add that after the string you want to search for, to anchor it properly.

Code:
sed -e '/^AAA|/w/export/home/vinay/AAA1.dat' -e '/^BBB|/w/export/home/vinay/BBB1.dat' a.dat
This finds "AAA" followed by vertical bar, but only if it is at beginning of line (because of the ^) and ditto for "BBB".

The vertical bar has special meaning to some regular expression engines, just like the ^ -- if you get erratic behavior (all lines matching all the time) then you need to backslash-quote it, like \|. It is unfortunate that there are different dialects of sed so that we can't know for sure whether or not this is an issue in your case.

Last edited by era; 05-14-2008 at 01:52 AM. Reason: Separator is vertical bar, as per above
Reply With Quote
  #14 (permalink)  
Old 05-14-2008
Registered User
 

Join Date: May 2008
Posts: 13
Hello era / unix gurus,

I tried the above script but its giving me
sed: command garbled: /^AAA \|/w/export/home/cmohanku/vinay/AAA1.dat

"Also does the sed -e '/^AAA/w AAA.dat' -e '/^BBB/w BBB.dat' number.dat traverses through the number.dat once or twice."


Please help me if possible

Thanks and Regards,
Vinay
Reply With Quote
Google The UNIX and Linux Forums
Reply

Tags
regex, regular expressions, solaris

Thread Tools
Display Modes




All times are GMT -7. The time now is 11:39 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited.
The UNIX and Linux Forums Content Copyright ©1993-2008. All Rights Reserved.Ad Management by RedTyger Visit The Global Fact Book

Content Relevant URLs by vBSEO 3.2.0