linux - 在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
任何帮助都会很棒!
解决方案
$ 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
推荐阅读
- python - 安装ethnicolr软件包的问题
- go - 如何查找类型是否为 float64
- json - 将响应转换为 Flux 忽略响应 Json 的某些字段
- docker-compose - Bitnami Apache、MariaDB、PrestaShop 和 PHPMyAdmin 的 docker-compose.yml 无法正常工作
- jquery - 按类查找下一个元素(可能不是兄弟)jquery
- python - 切片数组时“TypeError:'NoneType'对象不可下标”
- amazon-web-services - 限制文件上传到存储桶根目录(预签名表单)
- php - 如何在 PHP 中访问 SharePoint 上的共享文件?
- angular - Angular 将 FormData 传递给 WebAPI。获取空值
- vue.js - 使用 set 存储唯一值但是如果我的数组中有更多数据怎么办