¿Cuál es la razón por la cual el número de líneas difiere?
$ head -n 100000 ./access.log > ./data/log.sample
$ cat $_ | wc -l
1933424
!$hace lo que quería, pero no funcionará en un script IIRC.
teecomando en tu script.
¿Cuál es la razón por la cual el número de líneas difiere?
$ head -n 100000 ./access.log > ./data/log.sample
$ cat $_ | wc -l
1933424
!$hace lo que quería, pero no funcionará en un script IIRC.
teecomando en tu script.
Respuestas:
$_se está expandiendo a ./access.log(último argumento del último comando ejecutado), no ./data/log.sample.
Entonces, en realidad estás viendo la cantidad de líneas de ./access.log.
El redireccionamiento ( >) no es parte del headcomando, ya que lo hace el shell antes de que el headcomando se inicie. Por lo tanto con $_usted obtendría ./access.log.
De man bash:
($ _, un guión bajo). Al iniciar el shell, establezca el nombre de ruta absoluto utilizado para invocar el shell o el script de shell que se ejecuta como se pasa en el entorno o la lista de argumentos. Posteriormente, se expande hasta el último argumento del comando anterior , después de la expansión. Establezca también el nombre de ruta completo utilizado para invocar cada comando ejecutado y colocado en el entorno exportado a ese comando. Al verificar el correo, este parámetro contiene el nombre del archivo de correo.