Рассмотрим что-то вроде:
cat file | command > file
Это хорошая практика? Может ли это перезаписать входной файл так же, как мы его читаем, или он всегда считывается сначала в памяти, а затем передается во вторую команду?
Очевидно, что я могу использовать временные файлы в качестве промежуточного шага, но мне просто интересно..
t=$(mktemp)
cat file | command > ${t} && mv ${t} file