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' 

学习是一种信仰,分享是一种快乐

posted @ 2022-12-18 16:09  牧之丨  阅读(1978)  评论(0编辑  收藏  举报