awk怎么截取倒数第二行的数据

我有这么一组数据:我现在想用awk截取倒数第二行的倒数第一个域的数据,也就是3.7593112576e+10。我尝试过这样:awk'$NR{print$(NF-1)}',... 我有这么一组数据:

我现在想用awk截取倒数第二行的倒数第一个域的数据,也就是3.7593112576e+10。

我尝试过这样:awk '$NR {print $(NF-1)}',但是不行,得到的结果不对

这该怎么搞,求高手帮忙。。。
展开
 我来答
做一个快乐的茶农
高粉答主

2019-07-12 · 每个回答都超有意思的
知道答主
回答量:1396
采纳率:100%
帮助的人:36.5万
展开全部

1、首先要检查AWK是不是已经安装了,一般来说这个是系统内置的命令,直接a TAB键看看能否补全。

2、rpm查询,通过rpm -qa|grep awk 检查。

3、如果没有安装awk,通过yum 或 apt安装。

4、通过awk --help查看帮助,可以看到awk的使用方法。

5、awk获取文件最后两行,awk '{print}' /etc/passwd |tail -n 2。

6、获取文件最后一行  awk 'END{print}' /etc/passwd。

7、其实通过awk来获取太麻烦了,直接用tail -n 就可以了。

quliang1999
推荐于2017-12-15
知道答主
回答量:1
采纳率:0%
帮助的人:2.6万
展开全部
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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小米飞猫
2013-03-22 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
awk -v RS="" '{print $(NF-3)}' file
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Q叫我小铭同学
2021-12-18
知道答主
回答量:2
采纳率:0%
帮助的人:977
展开全部

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]}}'

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daemonsboy
2013-03-21
知道答主
回答量:1
采纳率:0%
帮助的人:1531
展开全部
awk '{res = cur; cur = $NF} END{print res}'
追问
取到数据了,我还想要倒数第二行倒数第二列的怎么搞啊?
我试了下:awk '{res = cur; cur = $(NF-1)} END{print res}'报错了。$NF不是指最后一列吗?减1就是倒数第二列吧?你上面那句的行数是在哪定义的啊?我最后一列的数据每一行都一样,取到的数据是不是倒数第二行的我就看不出来了,我想拿到倒数第二行倒数第二列的数据看看,也就是:3.9545870746e+09。这个数据和上面的不一样。求高手再给解答下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式