Existen varios comandos de Unix que están diseñados para operar en dos archivos. Comúnmente, dichos comandos permiten que los contenidos de uno de los "archivos" se lean desde la entrada estándar utilizando un solo guión en lugar del nombre del archivo.Redirigir dos archivos a la entrada estándar
me encontré con a technique que parece permitir que ambos archivos sean leídos de la entrada estándar:.
comm -12 <(sort file1) <(sort file2)
Mi reacción inicial fue de incredulidad, "Eso debería no funciona de entrada estándar solo tendrá la concatenación de Ambos archivos. El comando no podrá distinguir los archivos ni siquiera darse cuenta de que se le ha dado el contenido de dos archivos ".
Por supuesto, esta construcción funciona. Lo he probado con comm
y diff
usando bash 3.2.51 en cygwin 1.7.7. Tengo curiosidad por cómo y por qué funciona:
- ¿Por qué funciona esto?
- ¿Es esta una extensión de Bash, o es esta funcionalidad Bourne shell recta?
- Esto funciona en mi sistema, pero ¿funcionará esta técnica en otras plataformas? (En otras palabras, ¿los guiones escritos usando esta técnica serán portátiles?)
Eso es todo - ¡sustitución de procesos! Pasé mucho tiempo buscando información en redireccionamiento, pero tenía el nombre equivocado. –
Gracias. Esto ayudó. El ksh88 confirmado (en AIX 7.1) no admite este estilo de sustitución de proceso. Gracias Ganesh por bash. –