2

我有一个看起来像这样的文件

seq1 CT 5 CCCGCTGCTGATGAC  
seq2 AG 8 CTGTGTAGATGATGGGTTAGAG  
seq3 TG 3 CGTGTGACA  

我正在尝试用字段 2 中的字符串替换字段 4 的第 n 个字符,其中 n= 字段 3 指定的值。输出将是

seq1 CT 5 CCCGCTTGCTGATGAC  
seq2 AG 8 CTGTGTAAGATGATGGGTTAGAG  
seq3 TG 3 CGTGGTGACA  

我的尝试看起来像这样

awk '{a=$3; b=$2; sub(/(substr($4, a, 1))/,b);  print $0}’   

我猜发生的事情是它将 sub 命令指定的内容视为字符串,而不是获取 substr 命令指定的字符串和变量 b。搜索后,我找不到正确的方法。

干杯,

4

1 回答 1

3
awk '{$4 = substr($4, 1, $3-1) $2 substr($4, $3+1); print}'
于 2012-04-22T16:25:04.897 回答