Como usar o separador awk de aspas simples?


11

Eu gostaria de usar o awk para extrair informações da saída SQL da seguinte maneira:

(count (classe de servidor distinta) = '2')

E precisa extrair o número, que é 2 neste exemplo.

Eu gostaria de fazer algo como o seguinte, mas não consigo descobrir como escapar da aspas simples:

<sqlCommand> | awk 'BEGIN{FS="'"}{print $2}'

Como posso obter uma aspas simples literal como meu separador de campos no awk?

Respostas:


14

Para inserir um caractere de aspas simples em uma sequência de aspas simples, termine a sequência atual, escreva "'"ou \'e inicie a sequência novamente.

No seu exemplo, isso é

awk 'BEGIN{FS="'"'"'"}{print $2}'

ou

awk 'BEGIN{FS="'\''"}{print $2}'

No entanto, o uso da -Fopção para especificar o separador de campos resultará em um código mais legível:

awk -F\' '{print $2}'

Por que você atualizou o estilo de -F"'"para -F\'?
precisa saber é o seguinte

11
Não há uma boa razão. Ambos funcionam, mas o primeiro tem muitas citações para o meu gosto.
Dennis
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.