linux三剑客之sed
sed概念
字符流过滤编辑和文本字符流转换工具
三剑客各自作用
1、grep是过滤文本
2、sed是修改文本
3、awk是处理文本
格式
sed [参数] ‘处理规则’ [ 操作对象]
参数
1 -e : 允许多项编辑 2 -n : 取消默认输出 3 -i : 就地编辑 4 -r : 支持拓展正则(sed中的正则表达式必须放在两个//中间) 5 -f : 指定sed匹配规则脚本文件
定位
1、数字定位法,指定行号
注:当数字是1,3这种的时候就是第一行到第三行
2、正则定位法,指定正则定位
3、数字和正则定位法
4、正则正则定位法
sed的编辑模式
1、d,删除
2、p,打印
3、a,在当前行后添加一行或多行
4、c,在新文本修改(替换)当前行
5、i,在当前行之前,插入文本(单独使用时)
6、r,在文本中读内容
7、w,将指定行写入文件
8、y,将字符转换成另一个字符
9、s,将字符串转换成另一个字符串(每一行只替换一次)
10、g,全部执行(可以和s配合一起使用)
11、i,忽略大小写(跟s模式一起使用时)
修改ip
案例
1、将nginx.conf中的注释行全部去掉 [root@localhost ~]# sed '/^ *#/d' /etc/nginx/nginx.conf 2、将nginx.conf中每一行之前增加注释 [root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf 3、要求一键修改本机的ip, sed -i 's#.101#.102#g' /etc/sysconfig/network-scripts/ifcfg-eth[01] 4、将/etc/passwd中的root修改成ROOT sed -i 's#root#ROOT#g' /etc/passwd