shell – 如何在END之前检测awk中的最后一行
发布时间:2020-12-15 18:27:56 所属栏目:安全 来源:网络整理
导读:我正在尝试将最后一行添加到我正在创建的文件中.如何在END之前检测awk中文件的最后一行?我需要这样做,因为变量在END块中不起作用, 所以我试图避免使用END. awk ' { do some things..; add a new last line into file;}' 在END之前,我不希望这样: awk 'END{
我正在尝试将最后一行添加到我正在创建的文件中.如何在END之前检测awk中文件的最后一行?我需要这样做,因为变量在END块中不起作用,
所以我试图避免使用END. awk ' { do some things..; add a new last line into file;}' 在END之前,我不希望这样: awk 'END{print "something new" >> "newfile.txt"}'
一种选择是使用getline函数来处理文件.它在成功时返回1,在文件末尾返回0,在出错时返回-1.
awk ' FNR == 1 { ## Process first line. print FNR ": " $0; while ( getline == 1 ) { ## Process from second to last line. print FNR ": " $0; } ## Here all lines have been processed. print "After last line"; } ' infile 假设有这些数据: one two three four five 输出将是: 1: one 2: two 3: three 4: four 5: five After last line (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 离子单元测试中广播的意外$locationChangeSta
- [知了堂学习笔记]_记一次BootStrap的使用
- 为什么$((true == false))在bash中计算为1?
- nodejs+bootstrap实现分页效果
- twitter-bootstrap – Bootstrap 3模态更改
- scala – DSL提取案例类字段名称
- Go的Vim makeprg和errorformat
- angularJS+requireJS实现controller及directive的按需加载
- linux – 如何使用非默认运行参数在AWS Elastic Beanstalk
- 网络 – 如何将多个Docker连接到单个主机中的不同网桥?