The UNIX and Linux Forums  

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



View Single Post in UNIX Forums - Click on the Thread or Permalink to View Entire Thread -->
  #13 (permalink)  
Old 05-14-2008
era era is online now
Herder of Useless Cats
 

Join Date: Mar 2008
Location: /there/is/only/bin/sh
Posts: 3,063
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