Comando para manter as linhas com um certo tamanho em um arquivo

4

Eu gostaria de manter as linhas com exatamente 639 caracteres no meu arquivo .txt. Qual é o comando para fazer isso?

    
por Student 18.04.2016 / 12:36

4 respostas

15

Você pode usar grep :

grep -E '^.{639}$' your.txt

O ^ e $ correspondem ao início e ao fim da linha. O .{639} corresponde a qualquer caractere exatamente 639 vezes.

Como Stéphane comentou, isso pode ser encurtado (por um caractere) para:

grep -Ex '.{639}' your.txt

com -x indicando: Select only those matches that exactly match the whole line

    
por 18.04.2016 / 12:44
12

usando o awk:

awk 'length == 639'

ou um pouco mais compreensível:

awk 'length() == 639' 

\ thanks {@fedorqui}

    
por 18.04.2016 / 15:44
0

Você pode usar o Vim no modo Ex:

ex -sc 'v/\v^.{639}$/d' -cx file.txt
  1. \v ativa a mágica

  2. ^.{639}$ encontra linhas com exatamente 639 caracteres

  3. v inverter seleção

  4. d delete

  5. x salvar e fechar

por 19.04.2016 / 05:42
-1

Você não disse quais são seus dados ou se é aceitável dividir as palavras no meio. Então, aqui está uma alternativa que pode se adequar melhor ao texto escrito.

export MANWIDTH=639
cat file.txt | man -l -

Isso usará seu paginador padrão para exibir ou você enviará a saída para outra coisa.

    
por 18.04.2016 / 22:49