Remover palavra após partida

1

Considere a seguinte linha de texto (tirada de uma inserção do MySQL):

"description" varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',

Eu quero retornar

"description" varchar(255) NOT NULL DEFAULT '',

Ou seja. Eu quero remover COLLATE utf8_unicode_ci . No entanto, o agrupamento após a palavra-chave COLLATE pode variar dependendo do esquema original do banco de dados.

Eu me deparei com lookaheads, mas não tenho certeza de como eu poderia usá-lo para remover a palavra.

    
por Amo 07.09.2015 / 10:52

1 resposta

2

Assumindo que o campo após COLLATE não contém espaços em branco, você pode usar um simples liner Awk:

 awk '/COLLATE/ {$3=$4=""}1' file

Corresponde ao padrão COLLATE e imprime o arquivo inteiro sem o terceiro e quarto campo no registro correspondente (linha).

    
por 07.09.2015 / 11:17