提取数据的对角线

时间:2015-10-29 12:44:07

标签: bash

由于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

1 个答案:

答案 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;脚本停止在里面。对于所有行,它打印的字段等于行号。