Usando o mesmo arquivo para stdin e stdout com redirecionamento
Estou escrevendo um aplicativo que age como um filtro: ele lê a entrada de um arquivo (stdin), processa e grava a saída em outro arquivo (stdout). O arquivo de entrada é lido completamente antes do aplicativo iniciar a gravação do arquivo de saída.
Desde que eu estou usando stdin e stdout, eu posso executar é assim:
$ ./myprog <file1.txt >file2.txt
Funciona bem, mas se eu tentar usar o mesmo arquivo que a entrada e a saída (isto é: ler de um arquivo e gravar no mesmo arquivo), assim:
$ ./myprog <file.txt >file.txt
limpafile.txt
antes que o programa tenha a chance de lê-lo.
Existe alguma maneira de fazer algo assim em uma linha de comando no Unix?