2012-03-08 4 views
0

나는 이것에 대해 놀랄만 한 시간을 보냈다. 내 노크 선언문은 다음과 같습니다.ksh 및 awk/nawk로 분할하고 추가하기

nawk -F"\t" '{print substr($1,0,4)","substr($1,5,4)","substr($1,9,4)","$2","$3","$4","$5","$6}' filename 

간단히 말해서 탭으로 구분 된 파일입니다. 첫 번째 열 (12 문자)을 3 열로 분할하고 하위 문자열 기능으로 처리하려고합니다. 그런 다음 첫 번째 열없이 나머지 데이터를 인쇄하고 싶습니다. 내가 문제가되는 부분을 추가하고 있습니다.

현재 반복에서 6 개의 열이없는 행에는 쉼표가 붙고 6 개 이상의 열은 인쇄되지 않습니다.

의견이 있으십니까?

답변

1

테스트되지 않은,하지만이 시도 : 코멘트

nawk -F"\t" -v OFS=, ' 
    {$1 = substr($1,0,4) OFS substr($1,5,4) OFS substr($1,9,4)} 
    {print} 
' filename 

업데이트 - 당신이 따옴표의 모든 필드한다고 가정 : 나는 당신 때문에 변수로 nawk에 작은 따옴표를 통과

nawk -F"\t" -v OFS=, -v q="'" ' 
    { 
    $1 = q substr($1,0,4) q OFS q substr($1,5,4) q OFS q substr($1,9,4) q 
    for (i=2; i<=NF; i++) 
     $i = q $i q 
    print 
    } 
' filename 

을 작은 따옴표를 작은 따옴표로 묶은 문자열에 포함시킬 수 없습니다.

+0

이것은 작동하는 것 같습니다. 작은 따옴표로 각 데이터 요소를 래핑하려면 어떻게해야합니까? – Carlos

+1

@ mastashake57, 답변이 업데이트되었습니다. –