grep% através de um arquivo

0

Estou executando uma tarefa de importação em um arquivo mysql realmente grande que, na maioria das vezes, não possui quebras de linha.

Usando a lista de processos do mysql, consegui refinar o ID do registro atualmente inserido.

O que eu quero fazer é descobrir o caractere em que esse id aparece no arquivo para que eu possa descobrir qual porcentagem completa o trabalho de importação.

grep -n não ajuda porque o número da linha não é útil, pois não há quebras de linha entre inserções.

Existe alguma coisa que eu possa fazer com o grep (ou algum outro comando) para descobrir até que ponto uma string está em um arquivo?

    
por RobKohr 13.02.2015 / 15:48

1 resposta

1

Você pode substituir todos os espaços (ou ponto e vírgula ou ...) por novas linhas e grep e wc -l do resultado.

sed -e 's/ /\n/g/' input > result
wc -l < result
grep -n "$id" result

Se você não quiser criar um arquivo adicional, chame Perl para o resgate:

perl -e '$/ = " "; /ID/ and print "[$.]" while <>; print "$.\n"' input

Deverá produzir algo como [145]300 , significando que o ID apareceu no registro 145 de 300. $/ é o separador de registro, $. é o contador de recursões.

    
por 13.02.2015 / 15:53

Tags