On 12 fev, 11:33, Ed Morton <mor...@[EMAIL PROTECTED]
> wrote:
> On 2/12/2008 7:23 AM, Minalba Jordao wrote:
>
>
>
> > On 12 fev, 11:15, Ed Morton <mor...@[EMAIL PROTECTED]
> wrote:
>
> >>On 2/12/2008 6:57 AM, Minalba Jordao wrote:
>
> >>>Hello!
>
> >>>I am a newbie.
>
> >>>I have a few problems.
>
> >>>I have a file that looks like:
> >>>"
> >>>! comments
> >>>! comments
> >>>! comments
>
> >>>@[EMAIL PROTECTED]
text
> >>>X
> >>>Y
> >>>Z
> >>>@[EMAIL PROTECTED]
>
> >>>column1 column2 column3 column4
> >>>column1 column2 column3 column4
> >>>... ... ...
> >>>... ... ...
> >>>column1 column2 column3 column4
> >>>column1 column2 column3 column4
> >>>"
>
> >>>My questions:
> >>>I would to get the
> >>>- "! coments"
> >>>- what is between the @[EMAIL PROTECTED]
(at sign).
> >>>and
> >>>column1 column2 -column3
> >>>for each line..
>
> >>>could anyone help me?
>
> >>>Mina
>
> >>This MAY be what you want, but it's not clear:
>
> >>awk '
> >>/^@[EMAIL PROTECTED]
{ a=!a; b=1; next }
> >>a || /^!/ { print; next }
> >>b { print $1,$2,$3 }
> >>' file
>
> >>If not, post some sample input and expected output.
>
> >> Ed.
>
> > that worked!
> > But it did`t include the @[EMAIL PROTECTED]
sign.
> > ' comments
> > ! comments
> > ! comments
> > !
> > X
> > Y
> > Z
> > 1865.16833 6639.33984 -3278.68018
> > 1865.21423 6539.07471 -3284.02954
> > 1889.54529 6414.59814 -3287.10986
>
> > and it should be like
> > ' comments
> > ! comments
> > ! comments
> > !
> > @[EMAIL PROTECTED]
> > X
> > Y
> > Z
> > @[EMAIL PROTECTED]
> > 1865.16833 6639.33984 -3278.68018
> > 1865.21423 6539.07471 -3284.02954
> > 1889.54529 6414.59814 -3287.10986
>
> See my other post in this thread after you'd clarified that requirement
in a
> followup to your original post.
>
> Ed.
Ed,
It did work. Thank you.
But I didn`t understand acctually what you did.
In the first line, you look for the @[EMAIL PROTECTED]
sign in the begining of of the
line, then you print what you search. OK, then a=!a and b=1, I didn`t
understand what does this means.
/^@[EMAIL PROTECTED]
{ print; a=!a; b=1; next }
a || /^!/ { print; next }
b { print $1,$2,"-"$3 }
What can I read to understand it better?
Thank you again.
If I need to to that, with many files? Could I do it with awk? Or will
I need to use some shell scripting?
$
for file in *.dat; do ./trans.sh $file > $file.new; done
transf.sh
#!/bin/sh
awk ' /^@[EMAIL PROTECTED]
{ print; a=!a; b=1; next }
a || /^!/ { print; next }
b { print $1,$2,"-"$3 }' $1
Any suggestions?


|