2011-02-28 14 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 

のような表の形式でファイルに結果をdispayので

答えて

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でブロックをBEGINとENDがあります。私は実際にあなたがしようとしていることを本当に理解していません。だから私はあなたにもっと例を示すことを期待する。あなたが処理するために、入力ファイルを持っている、とテーブルの内容は、この入力ファイル

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

awkのBEGIN { 印刷 "フィールド1 \ tfield2 \ n" は ... プリント "1つの\のttwo" ... } '> outputfile.txtが動作しない – Shweta

+0

私のコード – Shweta

+0

を貼り付けて、サンプル入力ファイルで何をしようとしているのかを見せて、見たい出力を表示してください。あなたが後で持っている可能性のあるコードを脇に置きましょう。 – kurumi

関連する問題