linux 中 sed命令删除文本中指定位次的单词

 

001、

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt                       ## 测试文本
aa bb cc kk
ee ss ff uu
zz vv ee ww                                       ## sed预存储抽取文件的第一列
[root@pc1 test1]# sed -r 's/([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)(.*)/\1/'  a.txt
aa
ee
zz                                                ## 抽取文件的第二列
[root@pc1 test1]# sed -r 's/([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)(.*)/\3/'  a.txt
bb
ss
vv

 

002、删除二个单词

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt
aa bb cc kk
ee ss ff uu
zz vv ee ww                                             ## 删除第二个单词
[root@pc1 test1]# sed -r 's/([a-Z]+)([^a-Z]+)([a-Z]+)([^a-Z]+)(.*)/\1\2\4\5/'  a.txt
aa  cc kk
ee  ff uu
zz  ee ww

 

003、删除倒数第二个单词

[root@pc1 test1]# ls
a.txt
[root@pc1 test1]# cat a.txt
aa bb cc kk
ee ss ff uu
zz vv ee ww                                     ## 删除倒数第二个单词
[root@pc1 test1]# sed -r 's/(.*)([^a-Z]+)([a-Z]+)([^a-Z]+)([a-Z]+$)/\1\2\4\5/' a.txt
aa bb  kk
ee ss  uu
zz vv  ww

。 

 

posted @ 2024-02-20 12:25  小鲨鱼2018  阅读(22)  评论(0编辑  收藏  举报