Comando Awk vs Grep

1

Eu tive uma dúvida sobre o comando awk . Eu quero pegar um monte de arquivos e encontrar uma única linha de cada um e extraí-los em um arquivo de texto separado por vírgula, de modo que eu possa importá-lo para o Excel para fins de gráficos. Isso me preocupa, no entanto, porque o programa que eu uso gera arquivos .info e ouvi dizer que awk só funciona com arquivos de texto. A grep é a melhor opção? Se sim, como posso fazer com que a saída seja separada por vírgula?

Os arquivos gerados pelo programa são finalizados com .phy.rooting.0.rearrange.0.info

Os arquivos .info contêm uma linha que diz: Duplicações: 2

Aqui é onde eu recebo as informações que tenho para remover.

Este comando funciona atualmente, mas eu estava esperando por um mais atualizado e também possível o desafio de mudar o código para o aprendizado, se isso faz sentido.

O código que funciona é:

grep -w Duplications: *.info| grep -v Conditional >dups

No entanto, eu meio que quero ver se eu posso fazer um código Awk que poderia fazer a mesma coisa.

    
por Nathan 28.04.2015 / 23:31

1 resposta

3

O equivalente do awk

grep -w Duplications: *.info| grep -v Conditional >dups

seria

awk '/\<Duplications:/ && !/Conditional/ {print}' *.info > dups

Se uma linha corresponder à palavra "Duplicações:" e a linha não contiver "Condicional", imprima a linha.

Eu não acho que o awk ofereça algum benefício sobre o grep aqui.

    
por 29.04.2015 / 00:03