Linux 使用awk多次打印列

Linux 使用awk多次打印列,linux,awk,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

我有一个选项卡分隔的文件,它有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
0.36
0.43
0.28
0.36
我也尝试过:

awk '{print $0,$5}' file1.txt
打印相同的: 仅将最后一列输出为:

0.36
0.43
0.28
0.36
0.36
0.43
0.28
0.36
当我有
cut
命令时,我可以分别打印出
cut-f1
cut-f2
等等,这样就没有问题了

我不明白发生了什么,想问我如何将最后一列打印两次?

要将最后一个字段打印两次:

输出:

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

为什么您需要管道中的第一个
awk
命令?@Barmar作为警告,我想将定界更改为tabsy您的第一个命令行对我来说很好。我敢打赌您的文件有CRLF换行符,请使用
dos2unix
转换它们。@b请参见。。。您可以使用
cat-e file1.txt
检查它。。若您在行尾看到
^M$
,则表示您有dos样式行ending@bapors见编号。。它仍然打印1美元、5美元和5美元