considerar algo como:¿Está bien utilizar el mismo archivo de entrada como salida de un comando canalizado?
cat file | command > file
¿Es esta buena práctica? ¿Podría esto sobreescribir el archivo de entrada al mismo tiempo que lo estamos leyendo, o siempre se lee primero en la memoria y luego se canaliza al segundo comando?
Obviamente, puedo usar los archivos temporales como paso intermedio, pero me pregunto ..
t=$(mktemp)
cat file | command > ${t} && mv ${t} file
gracias, moreutils se ve muy útil! ¿Se aplica lo mismo a la redirección: 'comando < file > file' o incluso a la sustitución de proceso:' comando <(cat file) > file'? – Amro
Sí, también se aplica en ambos casos. Tenga en cuenta que el shell es libre de configurar las redirecciones en cualquier orden, por lo que debe considerar el comportamiento indefinido para acceder al mismo archivo dos veces en un solo comando o canalización. Incluso funciona ocasionalmente, no está garantizado. – Juliano