用awk多次打印列

时间:2018-01-23 11:12:02

标签: linux awk

我有一个制表符分隔文件,有5列:

file1.txt
1   101 T   A   0.36
1   101 T   C   0.43
1   101 T   G   0.28
1   102 A   C   0.36

我想打印最后一列两次,所以我希望:

1   101 T   A   0.36 0.36
1   101 T   C   0.43 0.43
1   101 T   G   0.28 0.28
1   102 A   C   0.36 0.36

我试试:

cat file1.txt | awk -v OFS="\t" '$1=$1'| awk '{print $1,$2,$3,$4,$5,$5}'

仅输出最后一列:

0.36
0.43
0.28
0.36

我也尝试过:

awk '{print $0,$5}' file1.txt

哪个印刷相同: 它只输出最后一列:

0.36
0.43
0.28
0.36

当我有cut命令时,我可以单独打印cut -f1cut -f2等等,所以没有问题。

我无法理解发生了什么,并想问我怎样才能打印最后一列两次?

1 个答案:

答案 0 :(得分:2)

要打印最后一个字段

awk '{ $NF=$NF OFS $NF }1' OFS='\t' file

输出:

1   101 T   A   0.36    0.36
1   101 T   C   0.43    0.43
1   101 T   G   0.28    0.28
1   102 A   C   0.36    0.36