2

私はこのようなファイルを持っています

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

フィールド 4 の n 番目の文字をフィールド 2 の文字列に置き換えようとしています。ここで、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}’   

substrコマンドで指定された文字列と変数bを取得するのではなく、subコマンドで指定されたものを文字列として扱っていることが起こっていると思います。検索した後、これを行う正しい方法が見つかりません。

乾杯、

4

1 に答える 1

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