Você também pode usar o que é conhecido como um comando composto . Essa é uma lista de comandos, que o shell trata como um único comando com o propósito de qualquer coisa externa ao comando composto.
Sim, isso é um pouco de uma definição recursiva; um exemplo facilita a compreensão.
Por exemplo, para cercar um arquivo com <pre>
e </pre>
, você pode usar um comando como:
( printf '<pre>' ; cat originalfile ; printf '</pre>' ) > newfile
Se você não tem um arquivo temporário, mas quer envolver a saída de algum comando com outra coisa, você pode injetar esse comando em vez do cat
:
( printf '<pre>' ; find / -type d -print ; printf '</pre>' ) > somefile
Isso tudo funciona aplicando o redirecionamento à saída de todo o comando composto, em vez de apenas suas partes.
Claro, isso não usa sed
ou awk
conforme solicitado, mas para esse tipo de tarefa, ir para essas ferramentas é um pouco exagerado.