bash - Append and replace using awk/sed -


i have file:

2016,05,p,0002    ,cjglopsd8                                                     00,bbf,bbdftp999,051000100,gbp,   ,       -2705248.00                            00,bbf,bbdftp999,059999998,gbp,   ,       -3479679.38                            00,bbf,bbdftp999,061505141,gbp,   ,             -0.40                            00,bbf,bbdftp999,061505142,gbp,   ,        6207621.00                            00,bbf,bbdftp999,061505405,gbp,   ,             -0.16                            00,bbf,bbdftp999,061552000,gbp,   ,             -0.24                            00,bbf,bbdftp999,061559010,gbp,   ,             -0.44                            00,bbf,bbdftp999,062108021,gbp,   ,             -0.34                            00,bbf,bbdftp999,063502007,gbp,   ,             -0.28   

i want programmatically (in unix, or informatica if possible) grab first 2 fields in top row, concatenate them, append them end of each line , remove first row.

like so:

00,bbf,bbdftp999,051000100,gbp,,-2705248.00,201605                           00,bbf,bbdftp999,059999998,gbp,,-3479679.38,201605                            00,bbf,bbdftp999,061505141,gbp,,-0.40,201605                            00,bbf,bbdftp999,061505142,gbp,,6207621.00,201605                            00,bbf,bbdftp999,061505405,gbp,,-0.16,201605                            00,bbf,bbdftp999,061552000,gbp,,-0.24,201605                           00,bbf,bbdftp999,061559010,gbp,,-0.44,201605                          00,bbf,bbdftp999,062108021,gbp,,-0.34,201605                         00,bbf,bbdftp999,063502007,gbp,,-0.28,201605 

this current attempt:

awk -vvar1=`cat of\ opsdown8.csv | head -1 | cut -d',' -f1` -vvar2=`cat of\ opsdown8.csv | head -1 | cut -d',' -f2` 'begin {fs=ofs=","} {print $0, var 1var2}' of\ opsdown8.csv> of_opsdown8.csv 

any pointers? i've tried looking around forum can find answers part of question.

thanks help.

use awk:

awk 'begin{fs=ofs=","} nr==1{val=$1$2;next} {gsub(/ */,"");print $0,val}' file 

explanation:

  • begin{fs=ofs=","} - block set fs (field separator) , ofs (output field separator) ,.
  • nr==1 - working line number 1. here, $1 , $2 denotes field number.
  • print $0,val - printing $0 (whole line) , stored value val.

Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -