我正在尝试使用 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
.
.
.
.
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
这是我的小脏 awk :
awk '{
print $1 ".value1=" $2;
print $1 ".value2=" $3;
print $1 ".value3=" $4;
}' data
这可能对您有用(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