Linux 使用awk多次打印列
我有一个选项卡分隔的文件,它有5列: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
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美元