- 分组显示 ** sed命令
[root@linux01 ~]# seq 11|sed -n 'n;p'
2
4
6
8
10
[root@linux01 ~]# seq 11|sed -n 'p;n'
1
3
5
7
9
11
[root@linux01 ~]# seq 11|sed -n 'N;P' -->N,P均为大写,这个有点巧妙,有取反之意
1
3
5
7
9
[root@linux01 ~]# seq 11|sed -n 'n;p'
2
4
6
8
10
[root@linux01 ~]# seq 11|sed -n '1~2p' -->1~2p表示从第一行开始,每隔两行输出记录一次,2为步长
1
3
5
7
9
11
[root@linux01 ~]# seq 11|sed -n '2~2p'
2
4
6
8
10
[root@linux01 ~]# seq 11|sed '2~2d' -->如此类推,2~2d表示从第二行开始,每隔2行删除一次记录
1
3
5
7
9
11
[root@linux01 ~]# seq 11|sed '1~2d'
2
4
6
8
10
** awk命令
[root@linux01 ~]# seq 11|awk 'NR%2' -->awk中1为TRUE,表示输出;0为FALSE,表示不输出
1
3
5
7
9
11
[root@linux01 ~]# seq 11|awk '!(NR%2)' -->!表示取反操作,显示(NR%2)为0的记录
2
4
6
8
10
[root@linux01 ~]# seq 11|awk 'NR%2==1' -->换一个思路,显示匹配'NR%2==1'的记录,即输出奇数行记录
1
3
5
7
9
11
[root@linux01 ~]# seq 11|awk 'NR%2==0'
2
4
6
8
10