替换网址前缀,适用于批量修改nginx配置文件,()内的匹配为分组,可以使用\1,\2,\3来代替
1 | sed 's/\(admin.*\)\.\([a-z]\{3\}\)\./a.\2./g' /etc/nginx/conf.d/admin.conf |
– 例如: 替换adminfdsfdas.sdf.xxxxx.com为a.sdf.xxxxx.com –
获取11:11-12:12时间段的日志
1 | sed -n '/11:11:/,/12:12:/p' filename |
替换文件内所有old字符串为new
1 | sed -i s/old/new/g filename |
在匹配字符go前面加入内容stark
1 | sed -i 's/go/stark&/' file |
在匹配字符go后面加入内容stark
1 | sed -i 's/go/&stark/' file |
删除匹配字符的行
1 | sed -i '/backup.sh/d' crontab |
删除第一行和最后一行
1 | sed -i '1d;$d' filename |
匹配行qiao上一行插入gege
1 | sed -i '/qiao/i\gege' file |
匹配行qiao下一行插入gege
1 | sed -i '/qiao/a\gege' file |
匹配当前行root,并替换为rootbajie
1 | sed -i '/root/c\rootbajie' /etc/passwd |
在每行的头添加字符HEAD
1 | sed -i 's/^/HEAD&/' file |
在每行的尾部添加字符tail
1 | sed -i 's/$/&tail/' file |
修改某个范围的内容
1 | sed -i '/Begin/,/End/{s/xxx/ooo/g}' filename |
将想要替换的字符串分段并重新排序
1 | sed 's/\(^[a-z_-]\+\):x:\([0-9]\+\):\([0-9]\+\):.*/\3 \1 \2/' passwd |
有时候使用sed替换路径或网址的时候异常痛苦,转义符多的眼花缭乱,sed命令定界符除了’/‘之外还有你的整个键盘哦!
1 | [root@stark shell]# cat sed_learn.txt |