But when I try to store the output in input file itself, it is not working. The input file is empty after executing the command. Why?
Como o > input
faz com que o shell trunque o arquivo antes que o comando tr
seja executado. Incidentalmente, você pode contornar isso com o manuseio do descritor mais avançado em Bash
:
exec 8<>input
exec 9<>input
tr '[A-Z]' '[a-z]' <&8 >&9
O exec #<>file
abre um arquivo no descritor #
no modo de leitura-gravação sem truncar.