如何使用命令 sed 替换文件的某些特定内容(不同行)?

清洁剂

我想知道如何替换这个:

.otros{
   position: fixed;
   top: 116px;
   z-index: 100;
   left: 0;
}

这样:

.otros{
   position: fixed;
   top: 70%;
   z-index: 100;
   left: 0;
} 

该文件的内容类似于以下内容:

.social a:not(:hover){
    width: 70px;
    -webkit-transition: 600ms;
    -o-transition: 600ms;
    -ms-transition: 600ms;
}
.social div a:not(:hover){
    width:200%;
}
.otros{
    position: fixed;
    top: 116px;
    z-index: 100;
    left: 0;
}

此命令不起作用:

sed 's/.otros{\ntop*:*;\n}/.otros{\ntop:70%;\n}/g' estilos.css

结果是:

.social a:not(:hover){
    width: 70px;
    -webkit-transition: 600ms;
    -o-transition: 600ms;
    -ms-transition: 600ms;
}
.social div a:not(:hover){
    width:200%;
}
.otros{
    position: fixed;
    top: 116px;
    z-index: 100;
    left: 0;
}

如何替换特定行?

钢刀

默认情况下,sed 替换在单独的行上运行;要在多行上下文中执行匹配,您需要使用该N命令将附加行读入模式空间。前任。:

$ sed '/\.otros{/ {N;N;s/top: 116px/top: 70%/}' estilos.css 
  .social a:not(:hover){
    width: 70px;
    -webkit-transition: 600ms;
    -o-transition: 600ms;
    -ms-transition: 600ms;
  }
  .social div a:not(:hover){
    width:200%;
  }
  .otros{
    position: fixed;
    top: 70%;
    z-index: 100;
    left: 0;
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何用sed替换文件内容

来自分类Dev

如何在不使用命令Sed的情况下查找和替换字符串?

来自分类Dev

用命令替换sed模式

来自分类Dev

如何使用命令“ sed”请求确认

来自分类Dev

如何使用sed命令替换文件中的$值?

来自分类Dev

使用sed或PERL替换文件中的内容

来自分类Dev

在sed中使用命令

来自分类Dev

使用sed命令替换文件中的2行

来自分类Dev

使用sed替换文件中的复杂命令

来自分类Dev

使用sed替换文件中的\字符

来自分类Dev

我应该如何使用sed命令用md5替换文件中的数字?

来自分类Dev

使用sed使用另一个文件的内容替换文件中的文本块

来自分类Dev

如何使用sed的w命令写入文件?

来自分类Dev

如何使用sed替换文件中的斜杠

来自分类Dev

如何使用sed搜索替换文件中的多行

来自分类Dev

如何使用sed替换文件中多次出现的变量?

来自分类Dev

在sed替代中使用命令

来自分类Dev

在sed替代中使用命令

来自分类Dev

如何通过运行命令使用sed或awk替换特定行

来自分类Dev

Unix sed命令替换文件中的括号

来自分类Dev

Unix sed命令替换文件中的括号

来自分类Dev

sed命令-替换文件中的字符串

来自分类Dev

使用命令替换

来自分类Dev

使用 sed 替换文本文件中 2 个特定行之间的文本

来自分类Dev

如何使用命令行参数替换文件中的fread()?

来自分类Dev

sed替换文件中的特定行

来自分类Dev

sed替换文件中的特定行

来自分类Dev

使用sed命令替换模式

来自分类Dev

使用sed命令替换多行