shell——sed

1. sed 的工作流程

读取一行,使用 定义的规则 处理,再读下一行。

规则定义格式

/pattern/action

pattern是正则表达式,两个反斜线表示表达式的开始和结尾。
只有缓存行匹配pattern,才使用action对其进行处理。

action包括

p 打印行
d 删除行
s 替换

sed可以指定多个规则,规则间用分号隔开

/pattern/action;/pattern/action

当缓存行被第一个规则匹配,执行完动作后,再尝试匹配第二个规则。

sed的规则可以忽略pattern,表示对所有行 执行动作。

sed 's/a/b/g' file

执行sed的方法,

sed '/pattern/action' file
other_command | sed '/pattern/action'

2. 示例

sed 's/a/b/g;s/c/d/g' ./file
sed -e 's/a/b/g' -e 's/c/d/g' ./file

sed -f ./sed_script ./file

# i 表示忽略大小写
sed 's/a/b/gi' ./file

# 写回到文件
sed -i 's/a/b/gi' ./file

# 删除第11行
sed '11d' ./file

# 删除3到25行
sed '3,25d' ./file

# 删除以#开头的行
sed '/^#/d'

# 删除最后一行
sed '$d' ./file

posted on 2022-03-25 17:10  开心种树  阅读(118)  评论(0编辑  收藏  举报