次の質問があります。
私のデータテーブルは次のとおりです
AAAGGGTTT AAAGGG
AAAGGGCCC GGGCCC
このように、3行目に2つのシーケンスの違いを表示したいと思います。
AAAGGGTTT AAAGGG TTT
AAAGGGCCC GGGCCC AAA
diffを使ってみました。ファイル(f1.txtとf2.txt)から個々のシーケンスを抽出し、diffで1行ずつ比較できるようにフォーマットしました。効果(データテーブルの1行))。
awk '{gsub(".","&\n");printf "%s",$0}' < f1.txt >f1a.txt
awk '{gsub(".","&\n");printf "%s",$0}' < f2.txt >f2a.txt
diff -y f1a.txt f2a.txt
希望の結果を得る方法を知っている人はいますか?
ベストアンサー1
これがあなたが追いかけているのでしょうか?
awk '{$3=$1;sub($2,"",$3)}1' file
$3=$1
最初のフィールドを3番目のフィールドにコピーし、sub($2,"",$3)
3番目のフィールド内で2番目のフィールドを探します。一致するものがある場合は、sub
一致する文字列を3番目のフィールドの空の文字列に置き換えます。最後に
1
結果を印刷します。これは{print}
ステートメントと同じで、書き換えることができます{$3=$1;sub($2,"",$3);print}
。
結果:
AAAGGGTTT AAAGGG TTT
AAAGGGCCC GGGCCC AAA