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