La opción '-o' ya estaba en sort
la sexta edición de Unix
Sin embargo, estoy de acuerdo con usted en que no está dentro de la filosofía de Unix. uniq
no tenía esa opción (y sort
no tenía un -u
entonces).
En mi PDP-11 usé un pequeño programa que tomaría un parámetro:
renac whatever
Si whatever
ya existiera, escribiría todo, desde stdin a un archivo temporal, que solo fue renombrado whatever
después de que la entrada stdin se agotara. De esa manera, podría canalizar la salida de cualquier comando en renac
lugar de redirigir al nombre del archivo sin la posibilidad de sobrescribir la entrada. Resolver el problema de sobrescritura de esa manera es, en mi humilde opinión, más conforme a la filosofía de Unix.
Algunas adiciones posteriores al programa fueron: no sobrescribir el archivo de salida si no había llegado nada en stdin (por ejemplo, como resultado de escribir mal parte de la línea de comando), y permitir una opción para agregar stdin al archivo nombrado.
Este fue uno de los primeros (si no el primero) programas reales de C que hice (para mi trabajo lo desarrollé principalmente en Pascal en ese sistema).