use
{echo "start string"; cat $doc; echo "end string"} > "outfile$num.txt"
Ou alternativamente:
echo "start string" > "outfile$num.txt"
cat $doc >> "outfile$num.txt"
echo "end string" >> "outfile$num.txt"
Ou ainda outro exemplo usando sed (você pode fazer algo semelhante com o awk):
sed -e '1i start string;$a end string' $doc > "outfile$num.txt"
No primeiro exemplo, os três comandos são simplesmente executados sequencialmente e a saída é então alimentada como um todo para o redirecionamento de saída > "outfile$num.txt"
.
No segundo exemplo, fazemos isso em três comandos e usamos o operador >>
em vez do operador >
para concatenar a saída para o arquivo fornecido, em vez de substituir o arquivo fornecido pela saída.
Além disso, como um aparte, você deve ser cuidadoso com o uso de for doc in $FILES
, isso divide em espaços, portanto, se algum dos seus nomes de arquivos contiverem espaços, eles serão interpretados como vários nomes de arquivos em vez de um nome de arquivo.