Como exportar um subconjunto de uma saída 'menos' [duplicada]

5

De vez em quando eu preciso pegar um subconjunto de um arquivo de log e salvá-lo em um arquivo para uso posterior. Eu uso muito less para ver e pesquisar nos logs e para exportar a parte interessante, atualmente faço o seguinte:

  1. em less mostre os números de linha e anote o intervalo de linhas que preciso
  2. de volta na cli, usando sed extraio o intervalo que preciso e salve em um arquivo

É possível fazer isso de dentro de less , ou seja, sem a parte sed ?

    
por fduff 05.09.2014 / 16:17

1 resposta

3

Observação , o comando a seguir pode ou não ser válido, dependendo da sua instalação específica.

De man less .

   | <m> shell-command
          <m> represents any mark letter.  Pipes a section of the input file to the
          given shell command.  The section of the file to be piped is between the
          first line on the current screen and the position marked by the letter.
          <m> may also be ^ or $ to indicate beginning or end of file respectively.
          If <m> is . or newline, the current screen is piped.

Portanto, quando abrir um arquivo em less , navegue até a posição desejada e digite o seguinte:

|. cat >filename

|. faz com que less canalize a tela atual para o comando especificado. O comando é cat >filename . cat lê de STDIN e redireciona para filename .

Você também pode abrir a peça em um editor, se quiser:

|. vi -

O - faz com que vi leia STDIN . Em seguida, em vi edite o que você deseja editar e salve o arquivo com :w filename . Você também pode usar outro editor, que pode ler STDIN .

    
por 05.09.2014 / 16:52

Tags