awkの

2012-04-22 16 views
2

とフィールドのn番目の文字に置き換えて、私はここで、n =値で指定され、フィールド2内の文字列とフィールド4のn番目の文字を置換しようとしていますawkの

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

このようなファイルを持っていますフィールド3の出力は、私の試みは、何が起こるのである私は推測する。この

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

のように見えます

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

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

乾杯、

答えて

3
awk '{$4 = substr($4, 1, $3-1) $2 substr($4, $3+1); print}' 
+0

+1。私はこれを行う簡単な方法を考えることができません。 :) – ghoti

+0

優れています。ありがとうございました! – user1308144