在bash中打印列

时间:2014-11-14 10:32:40

标签: bash shell unix awk cut

我的脚本有点问题。我有一个包含多个列的文本文件,我想要做的是打印最后一个(第12个)作为第一个,然后打印列号。我可以用命令打印出第7,8和9列:

awk -v f=7 -v t=9 '{for(i=f;i<=t;i++) printf("%s%s",$i,(i==t)?"\n":OFS)}' $file

其中$ 1是文件路径的参数

任何想法如何解决我的小问题?

2 个答案:

答案 0 :(得分:1)

awk '{print $NF, $7, $8, $9}'

将打印最后一个,然后是7 8和9

答案 1 :(得分:0)

如果你有一个像这样的文件:

bash-3.2$ cat myfile
1 2 3 4 5 6 7 8 9 10 11 12
a b c d e f g h i j  k  l

然后简单地

bash-3.2$ awk '{print $NF, $7, $8, $9}' myfile
12 7 8 9
l g h i