一、sed 命令选项
sed常用选项
-i : 直接在文件上编辑
-e[默认选项]: 只在命令行输出, 而文件不改变
sed 的常用其他选项:
-r: 使用扩展正则表达式
-e: 它告诉 sed 将下一个参数解释为一个 sed 指令, 只有当命令行上给出多个 sed 指令时才需要使用-e 选项
-f: 后跟保存了 sed 指令的文件
-i: 直接对内容进行修改, 不加-i 时默认只是预览
-n: 取消默认输出, sed 默认会输出所有文本内容, 使用-n 参数后只显示处理过的行
sed 中的编辑命令:
a: 追加 向匹配行后面插入内容
c: 更改 更改匹配行的内容
i: 插入 向匹配行前插入内容
d: 删除 删除匹配的内容
s: 替换 替换掉匹配的内容
p: 打印 打印出匹配的内容, 通常与-n 选项和用
=: 用来打印被匹配的行的行号
n: 读取下一行, 遇到 n 时会自动跳入下一行
r,w: 读和写编辑命令, r 用于将内容读入文件, w 用于将匹配内容写入到文件
使用
1. 替换
sed 替换的基本语法为:
sed 's/原字符串/替换字符串/'
特殊字符需要使用反斜线 / 进行转义,单引号" ‘ ’“是没有办法用反斜线”"转义的, 这时候只要把命令中的单引号改为双引号就行了
# 要处理的字符包含单引号
sed "s/原字符串包含'/替换字符串包含'/"
命令中的三根斜线分隔符可以换成别的符号, 只需要紧跟 s 定义即可。
# 将分隔符换成问号"?":
sed 's? 原字符串? 替换字符串? '
可以在末尾加 g 替换每一个匹配的关键字, 否则只替换每行的第一个, 例如:
# 替换所有匹配关键字
sed 's/原字符串/替换字符串/g'
多个替换可以在同一条命令中执行, 用分号";"分隔, 其格式为:
# 同时执行两个替换规则
sed 's/^/添加的头部&/g; s/$/&添加的尾部/g'
原文链接:https://blog.youkuaiyun.com/wan212000/article/details/128971900