博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sed命令拷屏
阅读量:7033 次
发布时间:2019-06-28

本文共 7914 字,大约阅读时间需要 26 分钟。

 

   sed样例较多,可以参考

 

-e,-n,-i,-fg,p,r,w,!,d,l,ns//p,s//g,{;}[root@250-shiyan sed]# cat -n grade.txt     1  M.Tansley       05/99   48311   Green     8     40     44     2  J.Lulu          06/99   48317   green     9     24     26     3  P.Bunny         02/99   48      Yellow    12    35     28     4  J.Troll         07/99   4842    Brown-3   12    26     26     5  L.Tansley       05/99   4712    Brown-2   12    30     28###其中$d可以换成任何定址符号,例如逗号,正则,数字之类的###删除尾行[root@250-shiyan sed]# sed '$d' grade.txtM.Tansley       05/99   48311   Green     8     40     44J.Lulu          06/99   48317   green     9     24     26P.Bunny         02/99   48      Yellow    12    35     28J.Troll         07/99   4842    Brown-3   12    26     26###删除除green行的其它行,相当于取反。[root@250-shiyan sed]# sed '/green/!d' grade.txtJ.Lulu          06/99   48317   green     9     24     26###行后插入[root@250-shiyan sed]# sed '/green/a\\aaaaaaaaaaaa' grade.txtM.Tansley       05/99   48311   Green     8     40     44J.Lulu          06/99   48317   green     9     24     26aaaaaaaaaaaP.Bunny         02/99   48      Yellow    12    35     28J.Troll         07/99   4842    Brown-3   12    26     26L.Tansley       05/99   4712    Brown-2   12    30     28###行前插入[root@250-shiyan sed]# sed '/green/i\\aaaaaaaaaaaa' grade.txtM.Tansley       05/99   48311   Green     8     40     44aaaaaaaaaaaJ.Lulu          06/99   48317   green     9     24     26P.Bunny         02/99   48      Yellow    12    35     28J.Troll         07/99   4842    Brown-3   12    26     26L.Tansley       05/99   4712    Brown-2   12    30     28###替换行[root@250-shiyan sed]# sed '/green/c\\aaaaaaaaaaaa' grade.txtM.Tansley       05/99   48311   Green     8     40     44aaaaaaaaaaaP.Bunny         02/99   48      Yellow    12    35     28J.Troll         07/99   4842    Brown-3   12    26     26L.Tansley       05/99   4712    Brown-2   12    30     28[root@250-shiyan sed]# sed '1,3y/99/87/' grade.txtM.Tansley       05/88   48311   Green     8     40     44J.Lulu          06/88   48317   green     8     24     26P.Bunny         02/88   48      Yellow    12    35     28J.Troll         07/99   4842    Brown-3   12    26     26L.Tansley       05/99   4712    Brown-2   12    30     28[root@250-shiyan sed]# sed -n  's/$/&aa/p' grade.txtM.Tansley       05/99   48311   Green     8     40     44aaJ.Lulu          06/99   48317   green     9     24     26aaP.Bunny         02/99   48      Yellow    12    35     28aaJ.Troll         07/99   4842    Brown-3   12    26     26aaL.Tansley       05/99   4712    Brown-2   12    30     28aac.oi            13/97   8765    wo        34    88     4aa###成功匹配并替换后写入aa.txt[root@250-shiyan sed]# sed -n  's/$/&aa/w aa.txt' grade.txt###在green行后读入aa.txt文件。[root@250-shiyan sed]# sed '/green/r aa.txt' grade.txtM.Tansley       05/99   48311   Green     8     40     44J.Lulu          06/99   48317   green     9     24     26# no packages own wtmpaaaaaaaaaaaaaaaaa and btmpaaaaaaaaaaaaaaaaa -- we'll rotate them here/var/log/wtmpaaaaaaaaaaaaaaaaa {    create 0664 root utmpaaaaaaaaaaaaaaaaa/var/log/btmpaaaaaaaaaaaaaaaaa {    create 0600 root utmpaaaaaaaaaaaaaaaaaP.Bunny         02/99   48      Yellow    12    35     28J.Troll         07/99   4842    Brown-3   12    26     26L.Tansley       05/99   4712    Brown-2   12    30     28c.oi            13/97   8765    wo        34    88     4###[root@250-shiyan sed]# sed  -n '/file/,/root/s/file/iiiiiiiiiiiiiiii/p' logrotate.conf# rotate log iiiiiiiiiiiiiiiis weekly# create new (empty) log iiiiiiiiiiiiiiiis after rotating old ones# use date as a suffix of the rotated iiiiiiiiiiiiiiii# uncomment this if you want your log iiiiiiiiiiiiiiiis compressed###默认只替换匹配到的第一个字符串,除非加g,全局替换。[root@250-shiyan sed]# sed -n  's/tmp/&aaaaaaaaaaaaaaaaa/p' logrotate.conf# no packages own wtmpaaaaaaaaaaaaaaaaa and btmp -- we'll rotate them here/var/log/wtmpaaaaaaaaaaaaaaaaa {    create 0664 root utmpaaaaaaaaaaaaaaaaa/var/log/btmpaaaaaaaaaaaaaaaaa {    create 0600 root utmpaaaaaaaaaaaaaaaaa###全局替换并打印,同时写入aa.txt文件。[root@250-shiyan sed]# sed -n  's/tmp/&aaaaaaaaaaaaaaaaa/gpw aa.txt' logrotate.conf# no packages own wtmpaaaaaaaaaaaaaaaaa and btmpaaaaaaaaaaaaaaaaa -- we'll rotate them here/var/log/wtmpaaaaaaaaaaaaaaaaa {    create 0664 root utmpaaaaaaaaaaaaaaaaa/var/log/btmpaaaaaaaaaaaaaaaaa {    create 0600 root utmpaaaaaaaaaaaaaaaaa###只对下一行操作[root@250-shiyan sed]# sed '/green/{n;s/12/9999/;}' grade.txtM.Tansley       05/99   48311   Green   8       40      44J.Lulu          06/99   48317   green   9       24      26P.Bunny         02/99   48      Yellow  9999    35      28J.Troll         07/99   4842    Brown-3 12      26      26L.Tansley       05/99   4712    Brown-3 12      30      28E.Wo            02/87   76      bule    34      88      5 ###对不连续行执行操作,即指定行的删除 [root@250-shiyan sed]# sed -i '1s/$/#&/;4s/$/#&/' grade.txt [root@250-shiyan sed]# cat grade.txt # J.Lulu          06/99   48317   green   9       24      26 P.Bunny         02/99   48      Yellow  12      35      28 J.Troll         07/99   4842    Brown-3 12      26      26# L.Tansley       05/99   4712    Brown-3 12      30      28 E.Wo            02/87   76      bule    34      88      5 ###针对不连续行操作 [root@250-shiyan sed]# sed '1d;3d;5d' grade.txt J.Lulu          06/99   48317   green   9       24      26 J.Troll         07/99   4842    Brown-3 12      26      26# E.Wo            02/87   76      bule    34      88      5 ###标签函数应用,较难理解。定义标签p1,执行替换操作,当A或B到达3个时。[root@250-shiyan sed]# cat > fileAB[root@250-shiyan sed]# sed '{:p1;/A/s/A/AA/;/B/s/B/BB/;/[AB]\{3\}/b;b p1;}' fileAAABBB###列出非打印字符[root@250-shiyan sed]# sed -n 'l' grade.txtM.Tansley\t05/99\t48311\tGreen\t8\t40\t44$J.Lulu\t\t06/99\t48317\tgreen\t9\t24\t26$P.Bunny\t\t02/99\t48\tYellow\t12\t35\t28$J.Troll\t\t07/99\t4842\tBrown-3\t12\t26\t26$L.Tansley\t05/99\t4712\tBrown-3\t12\t30\t28$E.Wo\t\t02/87\t76\tbule\t34\t88\t5$ ###第三行打印完就退出 [root@250-shiyan sed]# sed '3q' logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly

 

其中:test_sed的内容是:1234567890234567890134567890124567890123sed 'y/1234567890/ABCDEFGHIJ/' test_sedABCDEFGHIJBCDEFGHIJACDEFGHIJABDEFGHIJABC注意变换关系是按两个list的位置对应变换sed 's/01/Ab/g' test_sed123456789023456789Ab3456789Ab2456789Ab23注意:第一行的0,1没有分别替换为A,btest.txt,内容如下:http://www.5566.cn/produce/20070804112/315613171.shtmlhttp://bj.5566.cn/produce/20070804112/31581217.shtmlhttp://sz.5566.cn/produce/2008090412/31581247.shtml要求如下:将http://*.5566.cn/替换成/home/html/www.5566.cn# sed -n 's/http.*\.cn/\/home\/html\/www.5566.cn/gp' test.txt/home/html/www.5566.cn/produce/20070804112/315613171.shtml/home/html/www.5566.cn/produce/20070804112/31581217.shtml/home/html/www.5566.cn/produce/2008090412/31581247.shtml

 

[root@250-shiyan sed]# sed '3q' logrotate.conf# see "man logrotate" for details# rotate log files weeklyweekly-e选项允许在同一行里执行多条命令。sed -e '1,5d' -e 's/test/check/'example如例子所示,第一条命令删除1至5行,第二条命令用 check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。一个比-e更好的命令是--expression。它能给sed表达式赋值。sed --expression='s/test/check/' --expression='/love/d' example

 

[root@manage ~]# cat qqqqqqqqqqqqqqdddddddddddwwwwwwwwwwww 在第二行插入换行与uuuu行。\n是换行[root@manage ~]# sed -i '2i\\nuuuuuuuuu' qq[root@manage ~]# cat qqqqqqqqqqqqqquuuuuuuuudddddddddddwwwwwwwwwwww [root@manage ~]# cat qqqqqqqqqqqqqquuuuuuuuudddddddddddwwwwwwwwwwww 在第三行后插入[root@manage ~]# sed -i '3a\\n111111111' qq[root@manage ~]# cat qqqqqqqqqqqqqquuuuuuuuuddddddddddd111111111wwwwwwwwwwww 将第三行替换[root@manage ~]# sed -i '3c\22' qq[root@manage ~]# cat qqqqqqqqqqqqqquuuuuuuuu22111111111wwwwwwwwwwww 删除第4行到第6行 [root@manage ~]# sed -i '4,6d' qq [root@manage ~]# cat qq qqqqqqqqqqqq uuuuuuuuu 22 一次插入多行 [root@manage ~]# cat qq qqqqqqqqqqqq aaa bbb ccc uuuuuuuuu 22 [root@manage ~]# sed -i '2i\ 5a ee;\nbbb fff;\nccc  oooooo;' qq [root@manage ~]# cat qq qqqqqqqqqqqq  5a ee; bbb fff; ccc  oooooo; aaa bbb ccc uuuuuuuuu 22

 

转载于:https://www.cnblogs.com/createyuan/p/4213331.html

你可能感兴趣的文章
deepin15.4配置nginx时出现主页展现,其他全部找不到的问题
查看>>
python基础一:之字符串
查看>>
用emacs进行批量查找替换的例子
查看>>
开源 免费 java CMS - FreeCMS-数据对象-link
查看>>
JVM与字节码—类的方法区模型
查看>>
java中的getParentFile
查看>>
Linux下软链接与硬链接的区别
查看>>
git 基本操作指令
查看>>
linux21-磁盘阵列
查看>>
构造函数和析构函数
查看>>
Zabbix自定义交换机接口名称
查看>>
linux 命令 —— find
查看>>
在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)
查看>>
centos 6.5 下安装配置GO 1.2.1
查看>>
Hudson持续集成工具安装配置指南
查看>>
Setting Up Tez Ui
查看>>
druid.io 从本地批(batch)导入数据与从hdfs 批导入数据的index task配置
查看>>
vue里实现echarts中国地图
查看>>
MapReducer之Mapper中的Split切片原理(即影响MapTask数目的原因)
查看>>
笨方法学 python
查看>>