texto - sed reemplazar linea completa
Cómo reemplazar globalmente cadenas en líneas NO comenzando con un cierto patrón (3)
Quiero reemplazar globalmente el string foo con la barra de cadenas, usando sed. Esto solo debe hacerse para líneas que NO comienzan con la cadena ## Entrada.
No puedo conseguir que funcione. Intenté cosas como esta, pero llegué a un punto en el que no estoy seguro de si sé lo que estoy haciendo:
sed -i ''/^##Input/ s/foo/bar/g'' myfile
¡Por favor ayuda!
¡Solo necesitas negar el partido usando !
:
sed -i ''/^##Input/! s/foo/bar/g'' myfile
Tienes que escapar # como en /#
.
Una respuesta fea para una solicitud fea (es decir, obtienen lo que pidieron):
echo /{
for file in *.json; do
sed -n ''/^[/{/}]/! s//([^/,]/)$//1,/; /^[/{/}]/!p'' $file
done
echo /{