awk怎么截取倒数第二行的数据
我有这么一组数据:我现在想用awk截取倒数第二行的倒数第一个域的数据,也就是3.7593112576e+10。我尝试过这样:awk'$NR{print$(NF-1)}',...
我有这么一组数据:
我现在想用awk截取倒数第二行的倒数第一个域的数据,也就是3.7593112576e+10。
我尝试过这样:awk '$NR {print $(NF-1)}',但是不行,得到的结果不对
这该怎么搞,求高手帮忙。。。 展开
我现在想用awk截取倒数第二行的倒数第一个域的数据,也就是3.7593112576e+10。
我尝试过这样:awk '$NR {print $(NF-1)}',但是不行,得到的结果不对
这该怎么搞,求高手帮忙。。。 展开
5个回答
展开全部
awk '{
res = cur;
cur = $(NF-1)
} END{
print res
}' $filename
打印倒数第二行的第二列,是没有问题的。
你说出现报错,可能是你的数据集中有某些行只有一列,导致通过NF-1去找第-1列当然就失败了。
你可以这样处理下容错:
awk '
{
if (NF >=2 ) {
res = cur;
cur = $(NF-1)
}
} END{
print res
}' $filename
res = cur;
cur = $(NF-1)
} END{
print res
}' $filename
打印倒数第二行的第二列,是没有问题的。
你说出现报错,可能是你的数据集中有某些行只有一列,导致通过NF-1去找第-1列当然就失败了。
你可以这样处理下容错:
awk '
{
if (NF >=2 ) {
res = cur;
cur = $(NF-1)
}
} END{
print res
}' $filename
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
awk -v RS="" '{print $(NF-3)}' file
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
awk '
BEGIN{skip_row=2}
{items[NR]=$0}
END{
for(i=1;i<=NR-skip_row;i++)
{print items[i]}
}'
我是故意分开让你容易看懂的
awk 'BEGIN{skip_row=2}{items[NR]=$0}END{for(i=1;i<=NR-skip_row;i++){print items[i]}}'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
awk '{res = cur; cur = $NF} END{print res}'
追问
取到数据了,我还想要倒数第二行倒数第二列的怎么搞啊?
我试了下:awk '{res = cur; cur = $(NF-1)} END{print res}'报错了。$NF不是指最后一列吗?减1就是倒数第二列吧?你上面那句的行数是在哪定义的啊?我最后一列的数据每一行都一样,取到的数据是不是倒数第二行的我就看不出来了,我想拿到倒数第二行倒数第二列的数据看看,也就是:3.9545870746e+09。这个数据和上面的不一样。求高手再给解答下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询