Como salvar a saída exibida pelo terminal em um arquivo txt?

0

Eu tentei com o script , mas não funciona.

milenko@milenko-desktop:~/MTM$ script output.txt
Script started, file is output.txt

milenko@milenko-desktop:~/MTM$ wc -l output.txt
0 output.txt

Existem mais de 4000000 linhas na minha tela, como resultado da execução de um código C. Basta fazer parte disso

4194282 0.166666 2.35285e-06 -56.2841 -137.299 -129.386 4 0.974001
4194283 0.166666 2.2536e-06 -56.4712 -129.67 -131.872 4 0.577388
4194284 0.166666 2.33943e-06 -56.3089 -131.649 -132.051 4 0.693404
4194285 0.166666 2.40782e-06 -56.1838 -139.678 -129.377 4 0.702479
4194286 0.166666 2.61584e-06 -55.8239 -125.733 -128.783 4 0.585886
4194287 0.166666 2.60877e-06 -55.8356 -129.239 -127.815 4 0.773082
4194288 0.166666 2.71129e-06 -55.6682 -129.591 -127.553 4 0.796556
4194289 0.166666 2.89225e-06 -55.3876 -125.257 -127.627 4 0.815006
4194290 0.166666 2.84658e-06 -55.4568 -129.576 -127.566 4 0.557463
4194291 0.166666 2.71516e-06 -55.662 -129.31 -128.904 4 0.797976
4194292 0.166666 2.56104e-06 -55.9158 -127.996 -128.422 4 0.895766
4194293 0.166666 2.6007e-06 -55.8491 -128.079 -129.663 4 0.503785
4194294 0.166666 2.40808e-06 -56.1833 -140.025 -128.88 4 0.857429
4194295 0.166666 2.33237e-06 -56.322 -126.524 -130.575 4 0.410364
4194296 0.166666 2.46136e-06 -56.0883 -135.197 -130.224 4 0.833398
4194297 0.166666 2.48021e-06 -56.0551 -134.945 -131.935 4 0.856674
4194298 0.166666 2.43826e-06 -56.1292 -128.865 -128.875 4 0.490521
4194299 0.166666 2.45184e-06 -56.1051 -126.444 -129.16 4 0.935146
4194300 0.166667 2.51457e-06 -55.9954 -141.302 -130.337 4 0.745215
4194301 0.166667 2.47265e-06 -56.0684 -133.622 -131.74 4 0.541706
4194302 0.166667 2.45156e-06 -56.1056 -128.236 -128.832 4 0.503959
4194303 0.166667 2.54703e-06 -55.9397 -127.012 -127.581 4 1.10325
4194304 0.166667 2.55029e-06 -55.9341 -132.414 -127.012 4 0.475155

Como salvar isso?

Se eu tentar script > output.txt

Script started, file is typescript
]0;milenko@milenko-desktop: ~/MTM[01;32mmilenko@milenko-desktop[00m:[01;34m~/MTM[00m$ exit
Script done, file is typescript

Eu também tentei

command | tee ~/outputfile.txt

Mas novamente

 wc -l outputfile.txt 
0 outputfile.txt

Portanto, este não é o caminho certo.

    
por MikiBelavista 01.12.2016 / 15:26

2 respostas

1

meu pequeno segredo para quando eu preciso capturar stdout e stderr é usar nohup . Esta é uma boa solução quando você está interessado apenas na saída, e não na interação na tela também.

A maneira classic de capturar stdout (somente) e exibi-lo na tela é usar o comando tee

nohup script.sh | tee merged.out

E se apenas a stdout for desejada

script.sh | tee script.out

Aqui está um exemplo rápido usando o comando ls em vez de script.sh

xx069:~ # nohup ls | tee merged.out
nohup: ignoring input and redirecting stderr to stdout
bin
inst-sys
merged.out
xx069:~ # cat merged.out
bin
inst-sys
merged.out

E, é claro, o redirecionamento como 2 > & 1 para combinar stdout e stderr também é possível.

Principalmente, uso script para capturar a entrada e a saída na tela. Quando apenas a saída é necessária, uso uma das opções > , >> , 2>&1 > , tee e tee -a , dependendo da necessidade. E nohup quando sou preguiçoso.

    
por 01.12.2016 / 20:19
4

se você usa o comando script :

script history_log.txt

faça o que quiser e quando terminar de digitar:

exit

se você quer dizer a saída do script, então redirecione a stdout:

script.sh > output.txt
  • > redireciona o stdout para qualquer item desejado
  • 2> redireciona o stderr
  • &> redireciona stdout e stderr
por 01.12.2016 / 15:30