Como escrever um script que lê um arquivo e conta o número de intgers após um sinal “=”

0

Estou tentando escrever um script que leia um arquivo com vários valores semelhantes aos abaixo, ou seja, extrair log

1 = 232 = 343 = 5610 = 66 = ??????? 1 = 332 = 343 = 2010 = 46 = ???????? 1 = 392 = 343 = 3610 = 36 = ???????? 1 = 132 = 343 = 9610 = 16 = ???????

Onde o valor 6 = ??????? ou ???????? (pode ser qualquer inteiro de 7/8 bytes ou um caractere 7/8).

Eu quero ler / verificar o log que e imprime qualquer campo com "6" =

Em seguida, verifique o tamanho desse valor, se ele for maior que 8 inteiro / bytes

Em seguida, escreva as linhas que têm esse valor para um novo arquivo "

    
por DjOlu 07.03.2017 / 17:41

1 resposta

0

Para linhas que começam com 6= seguidas por não mais de 7 dígitos decimais (corresponderiam a 6= , 6=123 ou 6=123X45678 mas não 6=12345678 ):

grep -E '^6=[0-9]{0,7}([^0-9]|$)' < in > out

Para linhas que começam com 6= seguido por não mais de 7 caracteres:

grep -xE '6=.{0,7}' < in > out

Para linhas que começam com 6= seguido por não mais de 7 bytes:

LC_ALL=C grep -xE '6=.{0,7}' < in > out
    
por 07.03.2017 / 18:37