Sustitución de procesos en Bash
La salida de un comando, haciendo las veces de archivo.
# <( ) deja que la salida de un comando haga las veces de un archivo
diff <(printf 'a\nb\nc\n') <(printf 'a\nx\nc\n') || true
# comm quiere archivos ordenados; la sustitución de procesos ordena al vuelo
comm -12 <(printf 'b\na\n' | sort) <(printf 'c\nb\n' | sort)
# tee divide un flujo: una copia sigue de largo, otra se guarda
tmp=$(mktemp)
seq 1 3 | tee "$tmp" | wc -l
rm "$tmp"
Cómo funciona
<( )le da a comandos comodiffun stream con forma de archivo.commrecibe sus entradas ordenadas hechas a la medida.teecopia un stream a un archivo mientras sigue fluyendo.
Palabras clave y builtins usados aquí
printftrue
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 382
- Tokens
- 52
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 42 segundos.
Paso 3 de 3 en Tuberías y redirección; paso 18 de 26 en Fundamentos del lenguaje.