这里只介绍最简单的方法

sed实现
一:
奇数行 sed -n 'p;n' file
偶数行 sed -n 'n;p' file

 

这个可能比较难理解,举个网上的例子:

例,从aaa文件中取出偶数行
cat aaa
This is 1   
This is 2   
This is 3   
This is 4   
This is 5    

sed -n 'n;p' aaa         //-n表示取消默认输出
This is 2   
This is 4

注 释:sed读取This is 1,执行n命令,此时模式空间为This is 2,执行p,打印模式空间内容This is 2,之后读取 This is 3,执行n命令,此时模式空间为This is 4,执行p,打印模式空间内容This is 4,之后读取This is 5,执行n 命令,因为没有了,所以退出,并放弃p命令。

因此,最终打印出来的就是偶数行。


二:

奇数行 sed -n '1~2p' file
偶数行 sed -n '2~2p' file

 

awk实现
一:
奇数行 awk 'NR%2==1' file
偶数行 awk 'NR%2==0' file
二:
奇数行 awk 'NR%2' file
偶数行 awk '!(NR%2)' file