Я хотел бы знать, как заменить это:
.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;
}
Следующий сценарий Perl соответствует всему между .otros{
строка и top:
строка и замены top:
строка top: 70%;
:
perl -pe 's/(?!\.otros\{[\w\d\s:;\-%]*)top:.*/top: 70%;/' estilos.css
Если строки между .otros{
строка и top:
строка содержит что-либо еще, чем:
\w
)\d
)\s
):
);
)\-
)%
)просто добавьте его между квадратными скобками ([]
).
Результат:
.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;
}
Примечание: Этот сценарий не заменяет top: 116px;
только, но все после top:
(top:.*
) внутри .otros
. Например, это также заменило бы top: 55px;
или top: 90%;
.
Если просто необходимо заменить top: 116px;
, затем команда была бы этим:
perl -pe 's/(?!\.otros\{[a-zA-Z0-9\s:;\-%]*)top: 116px;/top: 70%;/' estilos.css