我的脚本最多可获得3列所选文件的值。如果文件是纯的,它运行良好,但如果我尝试使用tail + 2管道文件,它就不再工作了。有代码:
BEGIN {max1 = 0; max2 = 0; max3 = 0}
{
if(max1 < $1)
max1 = $1
if(max2 < $2)
max2 = $2
if(max3 < $3)
max3 = $3
}
END {print max1, max2, max3;}
我执行这样的代码:awk -f [codefilename] [targetfile]
100%良好
我执行这样的代码(想要在计算之前删除第一行):
awk -f [codefilename] [targetfile] |尾+ 2
失败
感谢您的帮助和时间。
答案 0 :(得分:1)
考虑你的例子:
awk -f codefilename targetfile | tail+2
首先,您需要tail
和+2
之间的空格。其次发生的事情是awk
命令的输出是通过管道传输到尾部所以它基本上就像写作:
awk -f codefilename targetfile > tmp1
tail +2 tmp1
我想你想要的是从targetfile
获取除第一行之外的所有内容并在其上运行你的awk代码,如果你需要这样的话:
tail +2 targetfile | awk -f codefilename
所有发行版都不支持Afaik tail +N
,而您需要sed -n '2,$p'
之类的内容。如果有人可以澄清,请做。