Qual a razão pela qual o número de linhas difere?
$ head -n 100000 ./access.log > ./data/log.sample
$ cat $_ | wc -l
1933424
!$faça o que você queria, mas não funcionará em um script IIRC.
teecomando em seu script.
Qual a razão pela qual o número de linhas difere?
$ head -n 100000 ./access.log > ./data/log.sample
$ cat $_ | wc -l
1933424
!$faça o que você queria, mas não funcionará em um script IIRC.
teecomando em seu script.
Respostas:
$_está expandindo para ./access.log(último argumento do último comando executado), não ./data/log.sample.
Então você está realmente vendo o número de linhas de ./access.log.
O redirecionamento ( >) não faz parte do headcomando, como é feito pelo shell antes mesmo que o headcomando seja iniciado. Daí com $_você teria ./access.log.
De man bash:
($ _, um sublinhado.) Na inicialização do shell, defina o nome do caminho absoluto usado para chamar o shell ou script de shell sendo executado conforme passado na lista de ambiente ou argumento. Posteriormente, expande para o último argumento para o comando anterior , após a expansão. Defina também o nome do caminho completo usado para chamar cada comando executado e colocado no ambiente exportado para esse comando. Ao verificar o correio, este parâmetro mantém o nome do arquivo de correio.