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文件是表格,我必须找不到。其中包含记录,并以像
这样的表格的形式将结果发送到文件中File Start End
File1 1 205
file2 206 417
等等
答案 0 :(得分:1)
awk中只有一个BEGIN和END块。我实际上并不真正理解你想要做什么。所以我希望你展示更多的例子。但是,要在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
答案 1 :(得分: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