0

我正在尝试使用 awk 从文件“input.dat”中的矩形矩阵中提取字段,如下所示

Name value1 value2 value3
A 0 100 200
B 100 0 200
C 0 0 0
D 50 50 50
E 0 90 90 

得到输出

A.value1=0
A.value2=100
A.value3=200
B.value1=100
.
.
.
.
4

3 回答 3

3
awk 'NR==1 { split( $0, a); next } 
    { for( i=2; i <= NF; i++ )
        print $1 "." a[i] "=" $i
    }' input.dat

或者:

awk 'NR==1 { split( $0, a); next }
    { for( i=2; i <= NF; i++ ) 
        printf "%s.%s=%s\n", $1, a[i], $i
    }' input.dat
于 2012-05-22T13:33:53.810 回答
0

这是我的小脏 awk :

awk '{ 
    print $1 ".value1=" $2; 
    print $1 ".value2=" $3; 
    print $1 ".value3=" $4;  
    }' data
于 2012-05-22T13:37:01.097 回答
0

这可能对您有用(GNU sed):

 sed '1{s/\S*\s*//;h;d};G;s/^/\n/;:a;s/\n\(\S*\) \(\S\+\)\([^\n]*\)\n\(\S*\) */\1.\4=\2\n\n\1\3\n/;ta;s/\n\n\S* *\n$//' file
于 2012-05-22T20:17:44.427 回答