1

次のコードを使用して、テキスト ファイルからタンパク質残基を抽出しました。

awk '{
if (FNR == 1 ) print ">" FILENAME  
if ($5 == 1 && $4 > 30) {
printf $3
 }
}
END { printf "\n"}'  protein/*.txt > seq.txt

上記のコードを使用すると、次の出力が得られました。

>1abd
MDEKRRAQHNEVERRRRDKINNWIVQLSKIIPDSSMESTKSGQSKGGILSKASDYIQELRQSNHR>1axc
RQTSMTDFYHSKRRLIFS>1bxc
RQTSMTDFYHSKRRLIFSPRR>1axF
RQTSMTDFYHSKRR>1qqt
ARPYQGVRVKEPVKELLRRKRG

以下に示すような出力を取得したいのですが、上記のコードを変更して次の出力を取得するにはどうすればよいですか?

>1abd
MDEKRRAQHNEVERRRRDKINNWIVQLSKIIPDSSMESTKSGQSKGGILSKASDYIQELRQSNHR
>1axc
RQTSMTDFYHSKRRLIFS
>1bxc
RQTSMTDFYHSKRRLIFSPRR
>1axF
RQTSMTDFYHSKRR 
>1qqt
ARPYQGVRVKEPVKELLRRKRG
4

2 に答える 2

0

gawkバージョン4では、次のように書くことができます。

gawk '
    BEGINFILE {print ">" FILENAME}
    ($5 == 1 && $4 > 30) {printf "%s",  $3}
    ENDFILE {print ""}
' filename ...

http://www.gnu.org/software/gawk/manual/html_node/BEGINFILE_002fENDFILE.html#BEGINFILE_002fENDFILE

于 2012-10-06T13:13:29.007 に答える
0

これはあなたのために働くかもしれません:

awk '{
if (FNR == 1 ) print newline ">" FILENAME  
    if ($5 == 1 && $4 > 30) {
        newline="\n";
        printf $3
    }
}
END { printf "\n"}'  protein/*.txt > seq.txt
于 2012-10-06T07:30:51.407 に答える