更改awk输出的外观

更改awk输出的外观,awk,Awk,我使用以下代码从文本文件中提取蛋白质残基 awk '{ if (FNR == 1 ) print ">" FILENAME if ($5 == 1 && $4 > 30) { printf $3 } } END { printf "\n"}' protein/*.txt > seq.txt 当我使用上面的代码时,我得到了以下输出 >1abd MDEKRRAQHNEVERRRRDKINNWIVQLSKIIPDSSMESTKSGQSKGGILSKAS

我使用以下代码从文本文件中提取蛋白质残基

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

这可能适合您:

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

使用gawk版本4,您可以编写:

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