Considere los siguientes dos (conjuntos de) comandos:
$ cat *.d | wc -l
y
$ rm -f tmp
$ cat *.d >> tmp
$ cat tmp | wc -l
Esperaría que los dos generaran el mismo valor. Sin embargo, cuando ejecuto esto en un directorio particular que tengo, veo lo siguiente:
$ cat *.d | wc -l
7026
y en comparación:
$ rm -f tmp
$ cat *.d >> tmp
$ cat tmp | wc -l
295
Parece que cat
estoy tropezando con su propia cola, si se me permite el juego de palabras. ¿Que está sucediendo aquí? Tenga en cuenta que si uso >
en lugar de >>
obtengo el resultado esperado de 7026
.
Editar:
Para obtener un poco más de información, el problema surge en una máquina virtual CentOS 7 local (que se ejecuta en una Mac). No debería haber ejecutado "lo mismo" en una máquina virtual separada y no obtengo el mismo resultado que el anterior, ambos conjuntos de comandos devuelven el mismo resultado.
En ambos casos, la versión cat
es 8.22 y la versión bash
es 4.2.46(2).