há um caminho zilhão para fazer isso, os dois primeiros que vieram com são awk e grep (nessa ordem)
awk
awk '/debug/ { print > "debug.txt" ; next ;} { print } ' logfile > info.txt
onde
-
/debug
/ selecione linha com debug de palavras -
{ print > "debug.txt" ;
print para debug.txt -
next ;}
leu a próxima linha no logfile -
{ print }
se não houver depuração, imprima para stdout -
> info.txt
redirecionar stdout para info.txt
um comando mais formal
awk '/debug/ { print > "debug.txt" ; }
$0 !~ /debug/ { print > "info.txt " ; } ' logfile
onde
-
$0 !~ /debug/
significa que, se a depuração não aparecer na linha.
grep
grep debug logfile > debug.txt
grep -v debug logfile > info.txt
onde
-
grep debug
seleciona linha com depuração -
grep -v debug
seleciona linha sem depuração - logfile é lido duas vezes
observe também que o conteúdo anterior de debug.txt e info.txt será excluído usando >
para mantê-lo, use >>
no shell ou no awk.