由于bash,我想提取一个看起来像方阵的数据的对角线。
数据是:
0.65603 -0.41101 0.17555 0.07549 -0.18749 0.07549 0.17555 -0.41101
-0.41101 0.72255 -0.65014 0.25679 0.13301 -0.24321 0.05697 0.22255
0.17555 -0.65014 0.80380 -0.59262 0.20108 0.11449 -0.19620 0.05697
0.07549 0.25679 -0.59262 0.74808 -0.61115 0.24808 0.11449 -0.24321
-0.18749 0.13301 0.20108 -0.61115 0.79509 -0.61115 0.20108 0.13301
0.07549 -0.24321 0.11449 0.24808 -0.61115 0.74808 -0.59262 0.25679
0.17555 0.05697 -0.19620 0.11449 0.20108 -0.59262 0.80380 -0.65014
-0.41101 0.22255 0.05697 -0.24321 0.13301 0.25679 -0.65014 0.72255
Point group blocks [8]
2.00000
1.99989
1.74085
0.25904
0.00022
0.00000
0.00000
0.00000
我不关心" Point group blocks"后面的内容,我只需要方阵的对角线。我想我必须做一些事情,比如第n行的第n个字符链,但我不知道怎么做......对于第一行,我只是这样做:
value=`grep '' data`
value1=`echo "${value:0:8}" | bc -l`
这是否仅适用于第一个值...是否有通用方法来grep任何方形数据的每个对角线值?
编辑:如果我们查看重复主题的答案,那应该是我的情况:
awk '{ for (i=0; i<=NF; i++) if (NR >= 1 && NR == i) print $(i) }' file.txt
在我们想要添加大量行的情况下:
awk '{ for (i=0; i<=NF; i++) if (NR >= 1 && NR == i) print i,$(i) }' file.txt
答案 0 :(得分:2)
m) For each GS_i:
iii) Case:
1) If GS_i is an <ordinary grouping set>, then
A) Transform SL2 to obtain SL3, and transform HC to obtain
HC3, as follows:
II) Replace each <column reference> in SL2 and HC that
references PC_k by "CAST(NULL AS DTPCk)"
是正确的工具。
awk
如果脚本遇到第一行&#39;点&#39;脚本停止在里面。对于所有行,它打印的字段等于行号。