Otimizando o comando sed ou criando um novo

Otimizando o comando sed ou criando um novo

Estou tentando filtrar um arquivo de log muito grande e me pergunto se existem alternativas para meus comandos? ou alguma otimização? aqui está o código:

#!/bin/bash
nice -20 sed '/./{H;$!d;};x;/37455299339/!d' 1.txt > /tmp/new.txt
nice -20 sed -n '/Acct-Status-Type/,/NAS-Identifier/p' /tmp/new.txt > /tmp/new_1.txt
rm /tmp/new.txt
nice -20 sed '/Acct-Status-Type/{x;p;x;}' /tmp/new_1.txt > /tmp/new_2.txt
rm /tmp/new_1.txt
nice -20 less /tmp/new_2.txt | grep -A1 -B1 37455299339 | grep -A1 -B1 User-Name > new_3.txt

Responder1

Como primeiro passo, eu removeria todos os arquivos temporários e usaria o pipe: do primeiro sedvocê pode canalizar o stdout para o segundo e depois para o terceiro. Então, seu lesscomando é inútil: basta canalizar novamente do terceiro sedpara grep.

Usando o pipe você terá muitos benefícios: primeiro você não desperdiçará espaço em disco e, segundo, não esperará por todas essas E/S de disco.

Para melhor encontrar uma solução, você deve nos dizer o que está bloqueando você no momento: é um dos sedcomandos? Qual deles?

informação relacionada