cat /home/logger/uplog.txt | awk 'NR==1,NR==7 {print $5}';
我知道这只给了我1到7字段的输出。我尝试的是
awk 'NR==1,NR==7 {print sum += $5}
但结果看起来没什么我想象的。那么我如何设法进行简单的计算,因为这是该脚本中的第二个awk-command,因此第二次读取。 BTW也包括这个问题,如何在awk语句中的一定数量的行之后写入/ dev / null,例如
(R=0,R<=181,R++)
for R in FNR>=181 /dev/null ;
任何暗示,提前谢谢。
答案 0 :(得分:1)
您对awk语法,术语和行为非常困惑。在尝试再次编写awk脚本之前,您应该阅读并阅读Arnold Robbins的书Effective Awk Programming, Third Edition。
让我们看看这是否有助于您当前的问题:
从每个输入记录的字段1到字段7打印是:
{
for (i=1; i<=7; i++) {
print $i
}
}
而是打印这些字段的值的总和:
{
sum=0
for (i=1; i<=7; i++) {
sum += $i
}
print sum
}
要将记录(默认为行)5到10写入/ dev / null将是:
NR>=5 && NR<=10 { print > "/dev/null" }
这会回答您当前的问题吗?