Proceso de sustitución

He echado un vistazo alrededor de lo que me desconcierta y solo encontré esto:¿Algunos programas no aceptan la sustitución de procesos para los archivos de entrada?

que está ayudando parcialmente, pero realmente me gustaría entender la historia completa. Noté que algunos de mis scripts R dan resultados diferentes (es decir, incorrectos) cuando uso la sustitución de procesos.

Intenté señalar el problema con un caso de prueba:

Este script:

#!/usr/bin/Rscript

args  <- commandArgs(TRUE)
file  <-args[1]
cat(file)
cat("\n")
data <- read.table(file, header=F)
cat(mean(data$V1))
cat("\n")

con un archivo de entrada generado de esta manera:

$ for i in `seq 1 10`; do echo $i >> p; done
$ for i in `seq 1 500`; do cat p >> test; done

me lleva a esto:

$ ./mean.R test
test
5.5

$ ./mean.R <(cat test)
/dev/fd/63
5.501476

Pruebas adicionales revelan que algunas líneas se pierden ... pero me gustaría entender por qué. ¿Read.table (escaneo da los mismos resultados) utiliza la búsqueda?

PD. con un archivo de prueba más pequeño (100) se reporta un error:

$./mean.R <(cat test3)
/dev/fd/63
Error in read.table(file, header = F) : no lines available in input
Execution halted

Agregue # 1: con una secuencia de comandos modificada que usa la exploración, los resultados son los mismos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta