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?

questionAnswers(3)

yourAnswerToTheQuestion