[CentOS] another sed question...

Fri May 30 19:25:07 UTC 2008
Craig White <craigwhite at azapple.com>

On Fri, 2008-05-30 at 20:26 +0200, Thomas Johansson wrote:
> Craig White wrote:
> > Looking to change a yml file (yaml is a database type file)
> > 
> > *** from
> > --- !ruby/object:Right 
> > attributes: 
> >   name: Personnel Admin
> >   action: index
> >   id: "1"
> >   controller: assessments
> > --- !ruby/object:Right 
> > attributes: 
> >   name: Personnel Admin
> >   action: find
> >   id: "2"
> >   controller: assessments
> > 
> > *** to
> > --- !ruby/object:Right 
> > attributes_1: 
> >   name: Personnel Admin
> >   action: index
> >   id: "1"
> >   controller: assessments
> > --- !ruby/object:Right 
> > attributes_2: 
> >   name: Personnel Admin
> >   action: find
> >   id: "2"
> >   controller: assessments
> > 
> > where I'm taking the 'id:' field from each record and inserting an
> > underscore and the id into the 'attributes' label directly above.
> > 
> > Any takers?
> > 
> > Thanks
> > 
> > Craig
> > 
> > _______________________________________________
> > CentOS mailing list
> > CentOS at centos.org
> > http://lists.centos.org/mailman/listinfo/centos
>  >
> I use awk instead of sed...
> 
> Reverse file order, perform changes using awk and reverse again
> 
> tac test.yml | awk '{if ($1=="id:"){idtag=substr($2,2,1)}; \
>        if ($1=="attributes:") {print "attributes_"idtag":"} \
>        else {print $0}}' | tac -
----
That was awesome...thanks...I learned a lot there.

I had to adjust the length of the substr function to get what I needed.

Thanks

Craig