gpt4 book ai didi

bash - 拆分列并将新列单独附加到表中

转载 作者:行者123 更新时间:2023-12-01 21:28:51 24 4
gpt4 key购买 nike

我有一个名为 baitmap.txt 的表格。在$5中,不同的基因名称用“,”隔开。

诱饵图.txt

1   831895  848168  218 RP11-54O7.1-001
1 848169 850618 219 RP11-54O7.2-001
1 850619 874081 220 SAMD11-011,SAMD11-003,SAMD11-010,SAMD11-001,SAMD11-004
1 889424 903640 223 NOC2L-001
1 903641 927394 224 C1orf170-001,C1orf170-201
1 927395 936954 225 HES4-002,HES4-001,HES4-004
1 943677 957199 228 RP11-54O7.11-001
1 1005127 1034268 234 RNF223-201
1 1049052 1062659 239 C1orf159-002,C1orf159-001,C1orf159-004,C1orf159-009,C1orf159-011,C1orf159-017,C1orf159-016,C1orf159-203,C1orf159-201,C1orf159-204,C1orf159-202
1 1096739 1107115 246 MIR200B-201

我想将名称拆分为 $5,然后将新列分别合并到前 4 列。所以它应该是这样的:

1   831895  848168  218 RP11-54O7.1-001
1 848169 850618 219 RP11-54O7.2-001
1 850619 874081 220 SAMD11-011
1 850619 874081 220 SAMD11-003
1 850619 874081 220 SAMD11-010
1 850619 874081 220 SAMD11-001
1 850619 874081 220 SAMD11-004
1 889424 903640 223 NOC2L-001
1 903641 927394 224 C1orf170-001
1 903641 927394 224 C1orf170-201

最佳答案

awk '{split($5, a, ","); $5=""; for( k in a) print $0, a[k]}' baitmap.txt

请注意,awk 对数组进行哈希处理,以便排列顺序。如果这很重要,您可以这样做:

awk '{n = split($5, a, ","); $5=""; for(k=1; k<=n; k++) print $0, a[k]}' baitmap.txt

关于bash - 拆分列并将新列单独附加到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62704962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com