Este script usa sed para cambiar todo "" a "cosas nuevas". ¿Cómo cambiaría uno solo el "" después del yyy: usando sed o cualquier otra cosa?
cat >sample.txt <<EOF
xxx:
""
yyy:
""
}
EOF
sed --expression='s/""/"new stuff"/' sample.txt
Este script usa sed para cambiar todo "" a "cosas nuevas". ¿Cómo cambiaría uno solo el "" después del yyy: usando sed o cualquier otra cosa?
cat >sample.txt <<EOF
xxx:
""
yyy:
""
}
EOF
sed --expression='s/""/"new stuff"/' sample.txt
Respuestas:
Puede que no entienda tu pregunta. Si desea reemplazar SOLO el valor después de 'aaa', use la respuesta anterior. Si desea reemplazar CUALQUIER valor después de 'aaa', intente con esta línea:
sed --expression='/yyy/,$ s/""/"new stuff"/g' sample.txt
No lo he probado: D ...
Respuesta obtenida de O'Reilly - Sed & Awk 2nd Addition Around página 152
Escribe un guión en un archivo
/yyy\:$/{
N
s/yyy\:\n\"\"/yyy\:\
\"new stuff\"/
}
Aplica esto a tus datos con la habitual
sed -f script sample.txt
Este script dice buscar yyy :. Cuando lo encuentre, lea otra línea en el búfer de patrón (suena como Star Trek Transporter). Ahora haga como / comando en las líneas unidas. Entonces estamos buscando aaa: nueva línea "". Si lo encuentra, reemplácelo con yyy: \ note la barra diagonal inversa de la nueva línea y luego "cosas nuevas"
Buena suerte