gpt4 book ai didi

如果字段中不存在,则 awk 添加前缀

转载 作者:行者123 更新时间:2023-12-05 00:42:26 27 4
gpt4 key购买 nike

我正在尝试向 awk 中的字段添加前缀(如果它尚不存在)。也就是说,如果 chr 在插入的数字之前不存在。但是,如果它在那里,它会被跳过。第一个 awk 将前缀添加到每个 $2 即使它存在并且第二个 awk 确实跳过 $2其中有 chr,但在没有 $2 的情况下会打印 chr。谢谢你:)。

文件

ASPA,17:3483575-3483585
ATM,11:108289609-108289613
ATP7B,13:51937469-51937480
ATR,chr3:142562768-142562773
BAG3,chr10:119670120-119670123

想要的

ASPA,chr17:3483575-3483585
ATM,chr11:108289609-108289613
ATP7B,chr13:51937469-51937480
ATR,chr3:142562768-142562773
BAG3,chr10:119670120-119670123

awk

awk -F, '{$2="chr"$2; print}' file

awk 2

awk -F, '$2 !~/chr/{gsub("chr","chr",$2)}1' file

最佳答案

你可以使用:

awk 'BEGIN {FS=OFS=","} $2 !~ /^chr/ {$2="chr" $2} 1' file

ASPA,chr17:3483575-3483585
ATM,chr11:108289609-108289613
ATP7B,chr13:51937469-51937480
ATR,chr3:142562768-142562773
BAG3,chr10:119670120-119670123

或者不使用任何正则表达式:

awk 'BEGIN {FS=OFS=","} index($2 , "chr") != 1 {$2="chr" $2} 1' file

另一种可能是最短的解决方案:

awk '{sub(/,(chr)?/, ",chr")} 1' file

关于如果字段中不存在,则 awk 添加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74142735/

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