根据匹配模式旁边的值拆分文件

根据匹配模式旁边的值拆分文件

我有一个文件 input.txt,其中包括约 50,000 行和约 100 列。我想根据匹配条目进行分割,后跟匹配模式。文件分隔符有空格和制表符。

输入.txt

#information  
#dateofcreation  
#file type
AA  BB  CC DD EE FF GG HH II 
AA  bb  ac aD FF GG hg ad 
DA  ga  Dt pp Ee    FF gg pm    TT
DA  bR  AT GT Gg    FF GG Hb    Yh
NM  gt  Jh GT FF    hb TH KM MM

在输入文件中,所有行中都有一个匹配字段 FF,后跟某些行中的条目匹配。我想从这个输入文件中得到三个输出文件

GG.txt

AA  BB  CC DD EE FF GG HH II
AA  bb  ac aD FF GG hg ad
DA  bR  AT GT Gg    FF GG Hb Yh

gg.txt

DA  ga  Dt pp Ee    FF gg pm    TT

HB.txt

NM  gt  Jh GT FF    hb TH KM MM

谢谢。

答案1

尝试

awk '
match ($0, /FF *[^ ]* /)        {FN = substr($0, RSTART+3, RLENGTH -4) ".txt"
                                 gsub (/ /, "", FN)
                                 print $0  >  FN
                                }
' file

相关内容