i have few line of string in txt file this:
input.txt-->
abc;def;ghi jklm;mno pqr; abcde;fgh;ijk lmno;pqrs tuv; my code this. did not work space. please help.
awk -f";" '{print $1,$2,$3,$4}' input.txt | while read var1 var2 var3 var4 echo 'var1 = ' $var1 echo 'var2 = ' $var2 echo 'var3 = ' $var3 echo 'var4 = ' $var4 done desired output-->
var1 = abc var2 = def var3 = ghi jklm var4 = mno pqr var1 =abcde var2 =fgh var3 =ijk lmno var4 =pqrs tuv
this can make it:
while ifs=';' read -r val1 val2 val3 val4 echo "val1 = $val1" echo "val2 = $val2" echo "val3 = $val3" echo "val4 = $val4" done < input.txt the basic aspect take consideration ifs=";" defines input field separator. read -r val1 .. val4 indicate variables defined.
it can easier awk:
$ awk -f";" '{for (i=1; i<nf; i++) {print "val"i,"=",$i}}' input.txt it defines ; field separator -f ";". loops through these fields for i , prints them. nf indicates number of fields , loop nf-1 last empty 1 not shown. thanks js웃 tip :)
test
$ while ifs=';' read -r val1 val2 val3 val4; echo "val1 = $val1"; echo "val2 = $val2"; echo "val3 = $val3"; echo "val4 = $val4"; echo; done < val1 = abc val2 = def val3 = ghi jklm val4 = mno pqr val1 = abcde val2 = fgh val3 = ijk lmno val4 = pqrs tuv awk version:
$ awk -f";" '{for (i=1; i<nf; i++) {print "val"i,"=",$i}}' val1 = abc val2 = def val3 = ghi jklm val4 = mno pqr val1 = abcde val2 = fgh val3 = ijk lmno val4 = pqrs tuv
Comments
Post a Comment