如何复制列?

时间:2019-01-23 17:13:33

标签: bash awk sed

我的数据输出如下:

ENSG00000133789 11 9554976
ENSG00000131626 11 70272382
ENSG00000020922 11 94324686
ENSG00000102710 13 36925520
...

我想复制第三列并得到它:

ENSG00000133789 11 9554976 9554976
ENSG00000131626 11 70272382 70272382
ENSG00000020922 11 94324686 94324686
ENSG00000102710 13 36925520 36925520
...

我尝试这样做:

cat out3 | awk '{ $3=$4; print; }'

但是我得到了:

ENSG00000133789 11 
ENSG00000131626 11 
ENSG00000020922 11 
ENSG00000102710 13 
...

我的列以空格分隔。我该如何进行这项工作?

编辑:

我通过以下方式解决了该问题:

awk -F' ' '{print $0" "$3}' out3 > out4

2 个答案:

答案 0 :(得分:4)

通常,要复制最后一列

$ awk '{print $0,$NF}' file

答案 1 :(得分:2)

awk '$4=$3' out3

这是所有必要的吗?请注意,awk接受来自STDIN的输入,因此从awkcat的管道传输是浪费过程,并且是多余的。 print是默认的awk操作,因此为简洁起见,可以将其省略。