首页 > 解决方案 > 在Linux中的每一列后面粘贴第一行

问题描述

我有一个制表符分隔的文件(但有更多的列)

1       2          3        4        5       6 
gene1   gene39   gene339   gene2     gene1   gene2
gene3   gene9    gene23    gene5     gene11  gene3
gene23  gene9    gene8     gene1     gene7   gene8

我想获取每一列 1,并将其粘贴到该列旁边。它看起来像这样

gene1  1   gene39  2   gene339  3   gene2  4   gene1   5  gene2  6
gene3  1   gene9   2   gene23   3   gene5  4   gene11  5  gene3  6
gene23 1   gene9   2   gene8    3   gene1  4   gene7   5  gene8  6

任何帮助都会很棒!

标签: linuxbashawk

解决方案


$ awk 'BEGIN{FS=OFS="\t"} NR>1{ for (i=1; i<=NF; i++) printf "%s%s%s%s", $i, OFS, i, (i<NF ? OFS : ORS) }' file
gene1   1       gene39  2       gene339 3       gene2   4       gene1   5       gene2   6
gene3   1       gene9   2       gene23  3       gene5   4       gene11  5       gene3   6
gene23  1       gene9   2       gene8   3       gene1   4       gene7   5       gene8   6

推荐阅读