2015-01-05 9 views
7

のエラー「ブロックは、アクション部分を持っている必要がありますBEGIN」私のコードです:は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 

私はそれを実行すると、私は次のエラーを取得する:

BEGIN blocks must have an action part

BEGINブロックは、Aはprint声明ですので、アクション部分があります。私はここで何が欠けていますか?

答えて

13

これは、開き中括弧が次の行にあるために発生します。

だから、あなたが何をする必要があるか、このようなBEGIN { ...を書くことです:メインブロックがに書き換えることができることも

BEGIN { 
print "Processing file: " filename 
} 

注:つまり

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

if()$0は暗黙的なのでスキップすることができます。

関連する問題