Re: another sed question...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Craig White wrote:
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@xxxxxxxxxx
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

I didn't think of numbers larger than 9 :-/ Here is an upgraded version of my script.. modify the substr command slightly.. That will enable numbers up to 10 chars long.

idtag=strtonum(substr($2,2,10))
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
http://lists.centos.org/mailman/listinfo/centos

[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]
  Powered by Linux