概述
sed 的意思是 Stream EDitor,即流式编辑器,sed 命令实现对文件的”增删改查“,玩转 sed 是写自动化脚本必须的基础之一。
sed 遵循简单的工作流:
- 读取(从输入中读取某一行)
- 执行(在某一行上执行 sed 命令)
- 显示(把结果显示在输出中)
- 默认是显示修改后内容,不会修改原文件,除非使用-i 参数。
查找替换
查找并替换文件中搜索到的内容
linux 下:
sed -i 's/original/new/g' file.txt
mac 下的 sed 是 bsd 版的,和 linux gnu 版略有区别,前面还需要指定一个备份文件后缀。
以下命令执行完,存在两个文件 file.txt file.txt.bup
sed -i '.bup' 's/original/new/g' file.txt
如果不需要备份也可以这么写的
sed -i '' 's/original/new/g' file.txt
在脚本中用 sed 做替换要区分系统类型
if [ "$(uname)" == "Darwin" ]; then
# mac sed script
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
# linux sed script
fi
最新评论