¿Cuál es tu versión sed? Pruebo con GNU sed version 4.2.1y no funciona.
cuonglm
2
Parece que falta una barra invertida al final de la primera línea, ¿después de la barra?
Volker Siegel
6
Otro aspecto:
¿Cuán mantenibles son los [long]elementos anteriores?
Cuanto más cortas y distintas sean las cláusulas, más fácil será cambiarlas y mejorarlas a medida que pase el tiempo y los hechos (externos) cambien en torno a la función que proporcionan.
/x
modificador para la sustitución.Respuestas:
Puede guardar una cadena larga en variables bash, luego usar en el
sed
comando:Si puede usar
perl
, puede romper el patrón largo con elx
modificador:fuente
sed "s/$string/$replace/" file.txt
está bien.replace=
.La división en varias líneas con barra invertida funciona si las nuevas líneas no están sangradas.
Probado en Cygwin con GNU sed 4.2.2
fuente
GNU sed version 4.2.1
y no funciona.Otro aspecto:
¿Cuán mantenibles son los
[long]
elementos anteriores?Cuanto más cortas y distintas sean las cláusulas, más fácil será cambiarlas y mejorarlas a medida que pase el tiempo y los hechos (externos) cambien en torno a la función que proporcionan.
p.ej
... podría ser algo por lo que luchar y preferir.
fuente
También puedes dividir eso de esta manera:
O tal vez como:
O con un heredoc:
fuente