2012-01-02 3 views
1

안녕하세요, 저는 처리 된 파일의 크기와 같은 세부 정보가 들어있는 final_customer_total.txt에서 레코드를 읽으려고했습니다. 나는 "nawk"명령을 사용하여 final_customer_total.txt를 읽고 처리 된 총 크기를 계산 한 다음 합계를 다른 파일에 저장합니다. 미처리 파일
예 의쉘 스크립트 - "nawk"

변수 t = 크기

t = 1000

입력 파일 보자

FILE1 100
파일 2 250
FILE3 300

예상 o utput :

총 크기가 처리해야 : 1,650

실제 출력 : 1,650

:

FILE1 100
파일 2 250
FILE3 300
총 크기가 처리해야

부적절한 파일에 대한 내 우려 내용도 출력물에 들어오지 않습니다!
아래 내가 그 오류가 발생한 지
오류 "AWK"를 시도 할 때 내가

cat final_customer_total.txt |nawk '{total = total + $1} END{printf ("\nTotal size :"(total + t)/1024/1024/1024" GB")}'t=$t >>customer_total_size.txt 

을 시도 명령입니다 : 근처 라인 구제 AWK 1

+0

게시물을 편집하여 샘플 입력 데이터와 예상 출력 및 현재 출력과 왜 잘못되었는지 확인하십시오. 다시 생성됩니다. 위의 설명을 기반으로 달성하려는 내용을 말하기는 너무 어렵습니다. 행운을 빕니다. – shellter

+0

'$ 2'의 값을 추가하면 안됩니까? 보고 된 결과는 다른면에서 설명하는 것과 일치하지 않습니다. – tripleee

+0

't = $ t '는 적어도 공백으로 프로그램과 분리되어야합니다. 이것이 구문 오류의 원인이됩니다. 프로그램 뒤에'var = value'를 전달할 수 있는지 여부는'nawk'에 달려 있습니다; 매뉴얼 페이지를 참고하십시오. –

답변

1

난 당신이 원하는 무엇을 의심 :

nawk -v t=$t ' 
{ 
    total = total + $1 
} 
END { 
    printf ("Total size needs to be processed: %d GiB\n",(total+t)/1024/1024/1024) 
}' final_customer_total.txt > _cts.txt 
mv final_customer_total.txt final_customer_total.txt.old 
mv _cts.txt final_customer_total.txt