Selecionando texto em um shell SuSE

1

Eu tenho um problema. Um aplicativo cuspiu uma carga inteira de texto de log em uma janela do Shell que precisa ser capturada. Se pudéssemos ignorar o "provavelmente não deveria ter uma saída de aplicativo, ele é stdout em qualquer lugar que não seja um arquivo de log", existe uma ferramenta / comando que eu possa usar para capturar a saída do programa?

Diferente de destacar todo o texto com um mouse e copiar para um arquivo de texto. Existem 250.000 linhas ...:)

    
por tigerswithguitars 25.07.2011 / 09:49

1 resposta

1

Se você puder executar o programa novamente, terá 3 opções:

  1. Se você não precisa ver a saída enquanto o programa é executado, use um redirecionamento simples (como o jonsca já sugeriu):

    $ yourVerboseProgram > anyNameForYourLogFile

  2. Se você quiser ver a saída do programa enquanto ela é executada, você tem duas (pelo menos) opções:

    a) Execute como descrito acima, enquanto em um segundo terminal rodando tail -f yourLogFile

    b) ('b' para 'melhor') Use tee :

    $ yourVerboseProgram | tee anyNameForYourLogFile

  3. Se 2. se aplicar e o programa for interativo (precisar da sua entrada durante a execução), use o programa script :

    $ script aLogFile.log
    Script started, file is aLogFile.log
    $ yourVerboseProgram
    

    (o programa está sendo executado ... e saindo.) Então você sai do script:

    $ exit
    Script done, file is aLogFile.log
    

    O único problema com a opção 3 é que tudo está sendo registrado, incluindo as teclas pressionadas, como pressionar "Backspace", etc.

por 28.07.2011 / 09:20