我有一个这种结构的文件:
1 11827796 2 300 T:0.96 C:0.04 T
1 11827816 1 300 G:1 G
对于文件中有6列而不是7列的行,我想在第5列和第6列之间插入一个零,所以有这个输出:
1 11827796 2 300 T:0.96 C:0.04 T
1 11827816 1 300 G:1 0 G
关于如何用awk实现这一点的任何想法。
提前多多感谢。
答案 0 :(得分:1)
这里有一个解决方案:
awk 'NF==6 {$5=$5" 0"}1' file |column -t
1 11827796 2 300 T:0.96 C:0.04 T
1 11827816 1 300 G:1 0 G
如果只有6
个字段,请添加0
并修复列宽。
答案 1 :(得分:1)
假设你的"列"是制表符分隔的,看起来像是:
$ awk 'NF<7{sub(/[^\t]+$/,"0\t&")}1' file
1 11827796 2 300 T:0.96 C:0.04 T
1 11827816 1 300 G:1 0 G