Hola!
estoy intentando programar un shell script que recorra un texto en busca de una linea concreta. En caso de encontrarla no debe mostrar nada, por lo contrario, si no encuentra esa linea debe mostrar el contenido del texto tal cual fue recibido.
Con esa finalidad he llegado hasta este script, al que he llamado myscript.sh:
#!/bin/sh
cadena="PRIVATE FILE: YES"
encontrado=0
#recorremos el texto
while read line ; do
if [ "$encontrado" -eq 1 ]; then
continue
fi
if [ "$line" = "$cadena" ]; then
buffer=""
encontrado=1
continue
fi
buffer=$buffer$line
done
echo $buffer
La llamada la hago desde la consola así:
cat texto.txt | myscript.sh
Esto funciona, pero se come todos los saltos de linea.
Supongo que el error está al almacenar cada linea en la variable buffer, pero no sé cómo hacer ese salto de linea.