复制文件中的所有列

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我试图复制我的文件中的所有列。我的文件非常大,包括600,000列和300行 - 制表符分隔。在这里,我只是展示了我正在尝试工作的文件的一小部分。

rs      71_1203 71_1299 71_6634
40896   3       3       4
70786   2       2       4
116950  2       2       4
5891    3       3       4
6254    3       2       4
89308   2       2       4
116953  2       2       4
116956  2       2       4
20709   3       2       4
12524   2       2       4
12603   2       2       4
21074   2       2       1
42672   2       2       4
40972   2       2       4
21727   3       2       4
22163   2       2       4
22417   2       2       4
41216   2       2       4
41374   2       2       4

现在我希望我的文件看起来像这样:

rs      rs      71_1203 71_1203 71_1299 71_1299 71_6634 71_6634
40896   40896   3       3       3       3       4       4
70786   70786   2       2       2       2       4       4
116950  116950  2       2       2       2       4       4
5891    5891    3       3       3       3       4       4
6254    6254    3       3       2       2       4       4
89308   89308   2       2       2       2       4       4
116953  116953  2       2       2       2       4       4
116956  116956  2       2       2       2       4       4
20709   20709   3       3       2       2       4       4
12524   12524   2       2       2       2       4       4
12603   12603   2       2       2       2       4       4
21074   21074   2       2       2       2       1       1
42672   42672   2       2       2       2       4       4
40972   40972   2       2       2       2       4       4
21727   21727   3       3       2       2       4       4
22163   22163   2       2       2       2       4       4
22417   22417   2       2       2       2       4       4
41216   41216   2       2       2       2       4       4
41374   41374   2       2       2       2       4       4

所有列都重复。我用awk命令做到了这一点 -

awk 'BEGIN{FS=OFS="\t"} {$1 = $1 OFS $1} 1' try.txt | 
awk 'BEGIN{FS=OFS="\t"} {$3 = $3 OFS $3} 1' |
awk 'BEGIN{FS=OFS="\t"} {$5 = $5 OFS $5} 1' | 
awk 'BEGIN{FS=OFS="\t"} {$7 = $7 OFS $7} 1'

我知道这个命令在我们的小文件时很好但是我用我的文件有600,000列这种方式肯定不会起作用。

有人可以帮助我,我怎么能这样做是一个简单的方法?

非常感谢您的帮助

提问于
用户回答回答于

使用awk:

$ awk -v OFS="\t" '{
    for(i=NF*2;i>1;i--)                                        # from NF*2 down to 2
        $i=((j=i/2)==int(j)?$j:$(++j))                         # $i=$(ceil(1/2))
}1' file

输出:

rs      rs      71_1203 71_1203 71_1299 71_1299 71_6634 71_6634
40896   40896   3       3       3       3       4       4
70786   70786   2       2       2       2       4       4
...

热门问答

急急急!!核验图片验证码填写到接入备案企业侧备案系统中,在哪操作啊?

无聊至极互联网重度用户
推荐
你反馈的上海备案的APP核验验证码吗?如果是的话,提交订单的时候直接写验证码就可以的。 在补充材料的下面 image.png ... 展开详请

存储桶和项目概念?

Hyman.W

腾讯云 · 高级产品经理 (已认证)

推荐
一个存储桶对应多个项目的管理方式,可以使用 “标签” 来管理, 在创建存储桶或者修改存储桶配置的页面可以添加。 参考: 1,存储桶标签使用 https://cloud.tencent.com/document/product/436/34830 2,如果需要通过外部系统来管理...... 展开详请

智能钛能处理大数据文件吗?我有30G的数据存储在本地电脑硬盘上?

腾讯智能钛AI开发者

腾讯云 · 智能钛产品团队 (已认证)

腾讯智能钛产品团队官方运营账号。分享产品最新动态,第一时间解答用户疑问。
推荐

硬盘可以升级吗?

最爱开车啦互联网的敏感者
推荐

可以升级,小微活动中没有云硬盘的的,后续可以用同帐号在官网购买和服务器同地域同地区的云硬盘挂载到服务器上使用。

云硬盘挂载初始化方法 可参考 https://cloud.tencent.com/document/product/362/6735

云通信 70402 错误?

推荐已采纳

参数非法,请检查必填字段是否填充,或者字段的填充是否满足协议要求。

您好,可参考此文档:https://cloud.tencent.com/document/product/269/1671

录音识别sdk的录音文件如何保存?

Richel码农
推荐

1.实时语音sdk内置录音器采集音频暂不支持保存语音数据,如需要保存语音数据建议上层自行采集音频数据。

2.实时语音识别sdk不支持暂停&继续操作,停止识别后重新调用start即开始识别。

所属标签

扫码关注云+社区

领取腾讯云代金券