How can determine the position of “&” in the column number 5 to substring the value 2 or substring value 3 by awk functions
column1|column2|column3|column4|variable1:value1 & variable2:value2 & variable3:value3 & variable4:value4|column6|column7| try u.awk as
BEGIN { FS="|" ; } { n=split($5,A,"&") ; for ( i=1; i <= n ; i++ ) { printf "%d-th & at position %d\n",i,length(A[i])+i ; split(A[i],B,":") i; printf "\t[%s] : [%s]\n",B[1],B[2] ; } } given input as
column1|column2|column3|column4|variable1:value1 & variable2:value2 & variable3:value3 & variable4:value4|column6|column7| COLn1|COLn2|COLn3|COLn4||COLn6|COLn7| Tue Oct 13 10:56:50 CEST 2015 called with awk -f u.awk u
1-th & at position 18 [variable1] : [value1 ] 2-th & at position 20 [ variable2] : [value2 ] 3-th & at position 21 [ variable3] : [value3 ] 4-th & at position 21 [ variable4] : [value4] for( .. ) (as n is 0)&'s positionUsing AWK:
awk -F['&''|'] '{ split($6,a,":");print a[2] }' input_file
cut -d'|' -f5to get the column value and pipe it to another cut