2015-01-05 15 views
7

Đây là mã của tôi:"BEGIN khối phải có một bộ phận không hành động" lỗi trong script awk

#!/bin/sh 

filename=$(/usr/bin/find -name "INSTANCE-*.log") 
echo "filename is " $filename 

awk ' 
BEGIN 
{ 
    print "Processing file: " filename 
} 

{ 
    if($0 ~ /Starting/) 
    { 
    print "The bill import has been Started on "$1 " " $2 
    } 

}' $filename > report.txt 

Khi tôi thực hiện nó tôi nhận được lỗi sau:

BEGIN blocks must have an action part

BEGIN khối của tôi có một print tuyên bố để nó có một phần hành động. Tôi đang thiếu gì ở đây?

Trả lời

13

Điều này xảy ra vì dấu ngoặc nhọn đang mở của bạn nằm trong dòng tiếp theo.

Vì vậy, những gì bạn cần làm là viết BEGIN { ... như thế này:

BEGIN { 
print "Processing file: " filename 
} 

Cũng lưu ý rằng khối chính có thể được viết lại để:

/Starting/ {print "The bill import has been Started on "$1 " " $2} 

Đó là, if()$0 là ẩn để chúng có thể bị bỏ qua.

Các vấn đề liên quan