Quiero usar un documento here-doc para comandos sed y proporcionar el archivo que se leerá y el archivo de salida.
He visto Here-Documents de la guía Advanced Bash Scripting, pero no menciona nada sobre argumentos regulares al usar un here-doc. ¿Es posible?
Me gustaría lograr algo como lo siguiente:
#!/bin/bash
OUT=/tmp/outfile.txt
IN=/my_in_file.txt
sed $IN << SED_SCRIPT
s/a/1/g
s/test/full/g
SED_SCRIPT
> $OUT;
Cualquier ayuda es muy apreciada.
fuente

-f -ensedpero requiere la sustitución de proceso:<( command ).En caso de que
sedno soporta la lectura de un guión destdin(usando-f -), puede utilizar la sustitución de proceso (disponible enbash,zsh,ksh93):El paréntesis de cierre
)debe seguir al delimitador final (SEC_SCRIPT) inmediatamente o después de una nueva línea. En el caso de la sustitución de procesos, también puede usar enecholugar de un documento aquí:fuente
"$IN"o inclusotestfile.txt) inmediatamente después del comando sed en sí mismo; quería un-e scripto-f file. Reorganizar la respuesta de @pabouk funcionó para mí:sed -f <( cat << ETC ... ETC) "$IN" > "$OUT"SED_SCRIPT.Quizás un mejor enfoque:
:)
fuente