awk 学习汇总

1.从文本中隔行提取数据

想法:首先想到的是对2的取余!!

awk确实有这样的编程思想,命令如下:

>>awk 'NR%2' filename (>newfilename)   

这是将filename 中的奇数行写入到另一个文件中:NR是行号,awk的内建函数,当第一行,NR==1时,对2取余,结果是1,在awk的执行模式里,这个1就是pattern,为真,执行默认的{print}这个action操作,那么打印出该行;

到第2行则余数是0,pattern为0,则为假,不会执行默认的{print},则不会输出偶数行。就达到了只输出奇数行的效果,反之则输出偶数行了。括号中可有可无,如要把奇数行提取写入新的文件则需要加上。

同理提取偶数行就是>>awk '!(NR%2)' filename (>newfilename)

 

posted @ 2018-05-22 11:40  笔耕先生  阅读(212)  评论(0编辑  收藏  举报