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

這是我的代碼,不起作用。它是shell腳本的一部分,所有變量都在腳本的其他部分計算。 我的I/P文件是表,我必須找出沒有。在他們的記錄和dispay在一個表格式的文件,結果就像在awk中嵌套BEGIN-END塊

File Start End 
File1 1  205 
file2 206 417 

回答

1

如果這些是shell變量,你需要將它們傳遞到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

只有一個BEGIN和END AWK塊。我其實並不真正瞭解你在做什麼。所以我希望你展示更多的例子。然而,創造AWK文件表,你可以做到這一點在BEGIN塊

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

,如果你有一個輸入文件來處理,並表內容來源於此輸入文件

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」 個 ...... 打印 「一個\ TTWO」 ... } outputfile.txt不能正常工作 – Shweta 2011-02-28 10:55:53

+0

我粘貼了我的代碼 – Shweta 2011-02-28 11:07:57

+0

爲什麼你不顯示你想要用示例輸入文件做什麼,並顯示你想看到的輸出。讓我們暫且放下你以後可能使用的任何代碼。 – kurumi 2011-02-28 11:37:21