最新要闻

广告

手机

市场监管总局回复关于软件规范问题_当前滚动

市场监管总局回复关于软件规范问题_当前滚动

非法运输爆炸性危险物质 一男子被三亚警方拘留-世界热消息

非法运输爆炸性危险物质 一男子被三亚警方拘留-世界热消息

家电

天天速读:关于使用awk列出文本文件的奇数行与偶数行的方法与技巧

来源:博客园


(相关资料图)

今天工作中有一个需求,需要分别输出一个文件的奇数行与偶数行内容

想起之前使用过的awk命令可以进行实现,于是记录于此

使用到的主要知识点,在awk中,对于使用未定义的变量,会将其视为假

1、输出奇数行内容,这里以seq命令的输出演示,可以更好的看到效果

[qq-5201351@localhost ~]$ seq 8 | awk "i=!i"1357[qq-5201351@localhost ~]$ seq 8 | awk "(i=!i)"1357[qq-5201351@localhost ~]$ seq 8 | awk "{if(i=!i) print $0}"1357[qq-5201351@localhost ~]$

2、输出偶数行内容,这里也以seq命令的输出

[qq-5201351@localhost ~]$ seq 8 | awk "!(i=!i)"2468[qq-5201351@localhost ~]$ seq 8 | awk "{if(!(i=!i)) print $0}"2468[qq-5201351@localhost ~]$

注:关于最后一条命令中的,awk "{if(!(i=!i)) print $0}",在print前面不要加上分号; 如果加上、则会输出全部的内容

其他方法:我们也还可以使用如下的方式实现(判断行数编号NR的奇偶性,通过求余实现):

单数行:awk "NR%2!=0"

偶数行:awk "NR%2==0"

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17509260.html

关键词: