sed是很强大的流编辑器,即文本处理工具;sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等
有朋友问个问题,如何用一条命令拿具体的IP地址替换成指定的字符串,就需要用到sed命令
192.168.0.11 --> ip_0
192.168.0.12 --> ip_1
192.168.0.13 --> ip_2
上面文档有几点比较麻烦的,比如IP地址匹配,比如同是role="0"该如何替换等,命令如下:
处理效果:
备注:
-i 在当前行插入文本
-e 编辑模式,多个的话,是多次操作
s/patt/repl/ 查找替换
.* 来匹配IP地址
/patt/{n;s:pat:rep:; } 查找替换下个匹配的项目,n代表下一个,注意;后面有空格
sed -i "30 a\\\t\t <ko_file ko='/opt/lib/lib.ko'>" filename
上面则是从30行插入两个TAB键和一个空格