sed 指定行后或行前插入
sed 功能非常强大,这里主要列出一些工作中常用到的举例,以后再追加
示例文本 example.cfg
Config =
{
a = 1,
b = 1024,
c =
{
ErrLevel = 4,
LogLevel = 2,
TraceLevel = 2,
ProfLevel = 2,
},
MysqlCfg = "db.cfg",
}
- 在包含某关键字行后插入一段(add.cfg)
Lua = { path = "./script", main_file = "main.lua", },
sed -i '/MysqlCfg/ r add.cfg' b
- 在包含ProfLevel的行后插入一行
\t
>Tab缩进
sed -i '/ProfLevel/a\\ttestLevel = 3'
- 在包含ProfLevel的行前插入一行
\t
>Tab缩进
sed -i '/ProfLevel/i\\ttestLevel = 3'
- 在包含ProfLevel的行后插入两行
\t
>Tab缩进\n
换行 不加-i
输出stout
sed '/ProfLevel/a\\ttestLevel = 3\n\ttest2Level= 4'
- 在第10行后插入一行
\t
>Tab缩进
sed '10 a\\ttestLevel = 3'
- 把ProfLevel替换为TestLevel
sed 's/ProfLevel/TestLevel/g'
- 查找字符串,再替换该行其他指定字符
sed /access_log/s/\;/\ access\;/g
- 把1~8行的ProfLevel替换为TestLevel
sed '1,8 s/ProfLevel/TestLevel/g'
- 删除包含ProfLevel的行
sed '/ProfLevel/d'