일치하는 패턴 옆의 값을 기준으로 파일 분할

일치하는 패턴 옆의 값을 기준으로 파일 분할

약 50,000개의 행과 약 100개의 열이 포함된 input.txt 파일이 있습니다. 일치하는 항목과 일치하는 패턴을 기준으로 분할하고 싶습니다. 파일 구분 기호는 공백과 탭입니다.

입력.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

관련 정보