2011-02-28 5 views
1
awk 'BEGIN {print FILE} 
{printf "Part\t\tStart\t\tEnd" 
printf "%s %-6s %-6d",Part1,1,$end1 
printf "%s %-6d %-6d",Part2,$start2,$end2} 
END {printf "total records:%d", $tot}' >meta.txt 

이것은 내 코드이며 작동하지 않습니다. 쉘 스크립트의 일부이며, 모든 변수는 스크립트의 다른 부분에서 계산됩니다. I/P 파일이 테이블이며, 번호를 찾아야합니다. 그들 레코드의 것은awk의 중첩 된 BEGIN-END 블록

File Start End 
File1 1  205 
file2 206 417 

답변

1

에서 오는 경우, AWK의 파일 테이블을 작성, 당신은 BEGIN 블록

awk 'BEGIN{ 
    print "field1\tfield2\n" 
    ... 
    print "one\ttwo" 
    ... 
}' > outputfile.txt 

에서 할 수 있습니다 사람들은 쉘 변수가 있다면, 당신은 AWK 스크립트로 전달해야합니다

awk -v "start2=$start2" -v "end1=$end1" -v "end2=$end2" -v "tot=$tot" 'BEGIN {print FILE} 
    {printf "Part\t\tStart\t\tEnd" 
    printf "%s %-6s %-6d", Part1, 1, end1 
    printf "%s %-6d %-6d", Part2, start2, end2} 
    END {printf "total records:%d", tot}' >meta.txt 
1

에 하나의 시작 AWK에서 END 블록이 같은 테이블 형태의 결과를 파일에 dispay. 나는 실제로 당신이하려고하는 것을 정말로 이해하지 못합니다. 그래서 나는 더 많은 예를 보여주기를 기대합니다. 당신이 처리 할 입력 파일을 가지고 있고, 테이블 내용이 입력 파일

awk 'BEGIN{ 
    print "field1\tfield2\n" 
} 
{ 
    ... 
    print "one\ttwo" 
    ... 
}END{ 
    print "so some final stuff here" 
}' inputfile > outputfile.txt 
+0

AWK '{ 인쇄 "필드 1 \ tfield2 \ n" ... 인쇄"ttwo \ 하나를"BEGIN... } '> outputfile.txt가 작동하지 않습니다. – Shweta

+0

코드 – Shweta

+0

을 붙 였는데 예제 입력 파일로 무엇을 하려는지 표시하고 보려는 출력을 보여 주면 어떨까요? 나중에 사용할 수있는 코드는 별도로 두십시오. – kurumi