https://www.runoob.com/linux/linux-comm-sed.html
sed命令很多,记住语法定义。
关于-n的用法:https://zhuanlan.zhihu.com/p/442286256
sed -i 命令详解
https://blog.51cto.com/u_15576159/5301918
# 对每行匹配到的第一个字符串进行替换
sed -i 's/原字符串/新字符串/' ab.txt
# 对全局匹配上的所有字符串进行替换
sed -i 's/原字符串/新字符串/g' ab.txt
# 删除所有匹配到字符串的行
sed -i '/匹配字符串/d' ab.txt
# 特定字符串的行后插入新行
sed -i '/特定字符串/a 新行字符串' ab.txt
# 特定字符串的行前插入新行(匹配到几个就插入几个)
sed -i '/特定字符串/i 新行字符串' ab.txt
# 把匹配行中的某个字符串替换为目标字符串
sed -i '/匹配字符串/s/源字符串/目标字符串/g' ab.txt
# 在文件ab.txt中的末行之后,添加bye
sed -i '$a bye' ab.txt
# 对于文件第3行,把匹配上的所有字符串进行替换
sed -i '3s/原字符串/新字符串/g' ab.txt
插入
https://www.cnblogs.com/liujiaxin2018/p/14988775.html
替换
- linu中使用sed替换字符包含‘/‘处理:https://blog.csdn.net/nmxiaocui/article/details/122623641
方案1:使用冒号作分隔符
sed替换 - 含反斜杠(/)和Shell变量
test-sed.txt中的内容如下:
aaa/bbb/ccc/ddd/eee
fff/ggg/ss
我要将其中的“ccc/ddd”替换为“CCC/DDD”。那么Shell(Bash)脚本应该为:
NEW_STRING="CCC/DDD"
sed -i "s:ccc/ddd:${NEW_STRING}:" test-sed.txt
其中:
1、s后的冒号(:)是分隔符,而不是使用默认的反斜杠(/)。
2、替换字符串是变量时,需要使用双引号。
方案2:转义
将/用转义字符"\/"替换
-
sed替换变量字符串
https://www.yii666.com/article/580116.html
echo 变量| sed ...
-
模糊查找并替换
find /etc -type f -name www.conf | xargs sed -i "s/^listen = \S*/listen = 9000/"
上面脚本表示将/etc/www.conf
文件里listen = xxxxx的字符串替换为listen = 9000,\S*
表示模糊匹配任意字符
0 条评论