linux shell 中实现删除文本的奇数行或者偶数行

 

 001、删除奇数行

a、sed实现

复制代码
[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt              ## 测试数据
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
[root@PC1 test01]# sed '1~2d' a.txt       ## sed实现
2       03      04
4       07      08
6       11      12
8       15      16
10      19      20
复制代码

 

b、awk实现

复制代码
[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt                   ## 测试数据
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
[root@PC1 test01]# awk 'NR % 2 == 0' a.txt     ## awk实现
2       03      04
4       07      08
6       11      12
8       15      16
10      19      20
复制代码

 

c、vim实现

复制代码
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:%normal jkdd         ## 命令模式下执行该语句,删除奇数行
复制代码

 

d、sed实现

复制代码
[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt                       ## 测试数据
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
[root@PC1 test01]# sed '1d; n; d' a.txt          ## sed中删除奇数行
2       03      04
4       07      08
6       11      12
8       15      16
10      19      20
复制代码

 

002、删除偶数行

a、sed实现

复制代码
[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt                  ## 测试数据
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
[root@PC1 test01]# sed '2~2d' a.txt          ## 删除偶数行
1       01      02
3       05      06
5       09      10
7       13      14
9       17      18
复制代码

 

b、awk实现

复制代码
[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt                     ## 测试数据
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
[root@PC1 test01]# awk 'NR % 2 != 0' a.txt      ## 删除偶数行
1       01      02
3       05      06
5       09      10
7       13      14
9       17      18
复制代码

 

c、vim实现

复制代码
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:%normal jdd        ## 命令模式下,输入一下内容并执行
复制代码

 

d、sed实现

复制代码
[root@PC1 test01]# ls
a.txt
[root@PC1 test01]# cat a.txt                 ## 测试数据
1       01      02
2       03      04
3       05      06
4       07      08
5       09      10
6       11      12
7       13      14
8       15      16
9       17      18
10      19      20
[root@PC1 test01]# sed 'n; d' a.txt        ## 删除偶数行
1       01      02
3       05      06
5       09      10
7       13      14
9       17      18
复制代码

 。

 

posted @   小鲨鱼2018  阅读(201)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-02-04 c语言5-9中录入指定人数成绩、统计成绩分布
2021-02-04 c语言中利用对象宏式对数组元素进行倒序排列
点击右上角即可分享
微信分享提示