2014-09-19 4 views
0

검색 패턴에 따라 파일을 여러 파일로 나눌 필요가 있고 다른 파일에 다른 헤더를 사용해야합니다. 파일을 분할 할 수는 있지만 다른 헤더를 다른 파일에 추가 할 수 없습니다. 시도한 코드는 다음과 같습니다.AWK를 사용하여 다른 헤더와 패턴 일치하는 파일 분할

BEGIN { 
    { 
     a=substr($0,38,2) 

     if(a=="HD") 
     {  
     print"a","b","c"... 
     OFS="|" 
     } 
     if(a=="AS") 
     {  
     print"e","f","g"... 
     OFS="|" 
     } 
    } 
} 
{ 
     a=substr($0,38,2) 

     if(a=="HD") 
     { 
     FIELDWIDTHS="10 8 10 9 2 1 1 11 14 14 14 14 14 14 14 14 8 60 30 30 32 32 27 18 11 346" 
     OFS="|" 
     } 
     if(a=="AS") 
     {  
     FIELDWIDTHS="10 8 10 9 2 1 7 30 14 14 14 14 625" 
     OFS="|" 
     } 
} 
{ 
    $1=$1 
    print > a".txt" 
} 
+0

그것은 언급 할 가치가있다는'FIELDWIDTHS'이 둔한 확장 기능입니다 : 그것이 BEGIN 블록에 설정된 (또는 입력 파일을 ... 변경할 때) 된 경우 그리고 지금까지 내가 보는대로, FIELDWITHS 설정 만 제대로 작동 . 태그를 추가했습니다. –

답변

0

왜 아래와 같이하지 않습니까? 것을

awk 'NR=1 { HEADER1 = "whatever" ; HEADER2 = "whatever2" ; 
      print HEADER1 > FIRSTFILE ; 
      print HEADER2 > SECONDFILE ; 
     } 
    { a=substr($0,38,2) 
     OFS="|" 
     print $0 >> a".txt" 
    }' INPUTFILE