grep para encontrar arquivos que contenham uma string maior que x caracteres?

5

É possível localizar arquivos em um diretório que tenha sequências (sem espaços) maiores que x comprimento?

    
por Susan 31.01.2010 / 00:07

2 respostas

18

Eu me considero um regex noob, mas criei um monte de arquivos com strings de tamanho variável e acho que consegui o que você queria, tente isto:

user@host$ grep -e '[^\ ]\{7,\}' *

Para quem não entende bem isso:

-e faz a pesquisa grep usando um regex. [^\ ] significa corresponder a um único caractere, exceto ao espaço. \{7,\} significa corresponder a uma sequência de 7 ou mais caracteres. Se você fosse colocar outro número depois, seria strings entre 7 e x caracteres.

    
por 31.01.2010 / 00:55
0

Não consegui obter o exemplo acima para trabalhar. Eu estava procurando por linhas em um arquivo CSV com mais de 10000 caracteres. Eu baguncei um pouco e comprei isso ... Encontre linhas com mais de 9999 caracteres ...

grep -a -e '[^\ ]\{9999,\}' *.csv >../my-file.csv

E isso é o que eu realmente precisava. Linhas no arquivo CSV com menos de 10000 caracteres. encontrar linhas com menos de 9999 caracteres

grep -a -v -e '[^\ ]\{9999,\}' *.csv >../my-file.csv
    
por 02.05.2013 / 18:28