同じサイズの2つのファイルを文字ごとに比較して、同じサイズの1/3を生成します。

同じサイズの2つのファイルを文字ごとに比較して、同じサイズの1/3を生成します。

同じ長さの2つの文字列のリストがあります。

例:

String A1: ATTCAGAATG
String A2: TGCCAGATAC

String B1: 0010011010
String B2: 0111010100

A1とB1、A2とB2などを文字ごとに比較し、B文字列の同じ位置に1がある場合は、A文字列の文字を修正したいと思います。文字列Bの文字が0の場合はそのままにしたいと思います。

A1とB1を比較した結果はでなければならずATxCAxxAxG、これを3番目のファイルに保存したいと思います。

サイズと長さが同じ2つのテキストファイルがあり、それぞれ1行にシーケンスが含まれています。プロセスが完了したら、2つのファイルをマージした同じサイズと長さの3番目のファイルが必要です。

これはワンタイムタスクなので、ハッキーなタスクを実行するためにbashまたは他のものを使用することになります。しかし、他のスクリプトや単純なCプログラムが状況を処理するより合理的な方法であれば、喜んでそうします。それ。

この問題を解決する最も簡単な方法の提案はありますか?

ベストアンサー1

paste file1 file2 |\
awk '{
    len=length($1)
    for(char=1; char<=len; char++)
        printf (substr($0, char+len+1, 1)+0)? "x" : substr($0, char, 1)
    print ""
}'

おすすめ記事