我想读取一个数字矩阵
1 3 4 5
2 4 9 0
并且只希望我的 awk 语句打印出第一个和最后一个,所以 1 和 0。到目前为止我已经有了这个,但什么也不会打印。我的逻辑有什么问题?
awk 'BEGIN {for(i=1;i<NF;i++)
if(i==1)printf("%d ", $i);
else if(i==NF && i==NR)printf("%d ", $i);}'
最佳答案
$ awk '{ if (NR==1) { print $1}} END{print $NF}' matrix
1
0
上面的 awk 程序有两部分。第一个是:
{ if (NR==1) { print $1}}
这将打印文件第一条记录(行)的第一个字段(列)。
第二部分是:
END{print $NF}
这部分仅在最后一条记录(行)被读取后运行。它打印该行的最后一个字段(列)。
关于Bash - 仅使用 awk 打印矩阵的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598827/