$ sed -i “/datadir=/ a text_test” filename //搜索含有datadir=的行下面插入 text_test
$ sed -i “/datadir=/ i text_test” filename //搜索含有datadir=的行上面插入 text_test
$ sed -i “/datadir=/ i text_test \ntest2” filename //搜索含有datadir=的行上面插入两行 text_test和test2
$ sed -i “s/datadir=/text_test/g” filename //(g)全局(s)替换datadir=为text_test
$ sed -i “/datadir=/ c text_test” filename //含有datadir=的整行替换为 text_test
$ sed -i s/^ldap_host.*$/text_test/ filename //ldap_host 开头的整行替换为 text_test
$ sed -i ” 66 a hello” filename //66行后插入hello
$ sed -i "/^SELINUX/s/enforcing/disabled/" /etc/selinux/config // 替换指定行的指定字符
$ sed -i.bak s/test/TEST/g test.txt //替换之前先把 test.txt 复制为 test.txt.bak,然后再搜索替换
$ sed -n '/07\/May\/2021:21:21:*/,/07\/May\/2021:21:22:*/p' access.log-20210508 //查询某个时间段的日志
$ sed -n '/07\/May\/2021:21:21:*/,/07\/May\/2021:21:22:*/p' access.log-20210508 > access.log //导出某个时间段的日志
$ sed -i '3~2d' test.txt // 从第3行开始,每隔一行删除,即删除 3,5,7... 行
$ sed -i '4,8d' test.txt // 删除4-8 行
$ sed -i '$d' test.txt // 删除最后一行
$ sed -i '/^$/d' test.txt // 删除所有空白行
$ sed -i '/test/,$d' test.txt // 删除从匹配行到最后一行
$ sed -i '/test/,+2d' test.txt // 删除匹配行和之后的两行
注意:-i 参数,会直接修改原文件,操作需谨慎。可以先把 -i参数去掉执行,看一下效果。
1. 实例
// 创建示例文件
$ cat > test.yml <<EOF
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/component: controller-default
app.kubernetes.io/name: prometheus-operator
app.kubernetes.io/version: 0.60.1
name: test
namespace: default
EOF
// 将 namesapce: default 替换为 namespace: monitoring 。
$ sed "s#namespace:.*#namespace: monitoring#g" test.yml
作者:jackzang 创建时间:2022-10-20 11:30
最后编辑:jackzang 更新时间:2024-10-31 11:07
最后编辑:jackzang 更新时间:2024-10-31 11:07