Comment utiliser le séparateur awk de guillemet simple?

11

Je voudrais utiliser awk pour extraire des informations de la sortie SQL comme suit:

(count (classe serveur distincte) = '2')

Et besoin d'extraire le nombre, qui est 2 dans cet exemple.

Je voudrais faire quelque chose comme ce qui suit, mais je ne sais pas comment échapper à la citation unique:

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

Comment puis-je obtenir un devis simple littéral comme séparateur de champ dans awk?

WilliamKF
la source

Réponses:

14

Pour insérer un seul guillemet dans une chaîne entre guillemets simples, terminez la chaîne actuelle, écrivez "'"ou \'et recommencez la chaîne.

Dans votre exemple, c'est

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

ou

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

Cependant, l'utilisation du -Fcommutateur pour spécifier le séparateur de champ entraînera un code plus lisible:

awk -F\' '{print $2}'
Dennis
la source
Pourquoi avez-vous mis à jour le style de -F"'"à -F\'?
WilliamKF
1
Aucune bonne raison. Les deux fonctionnent, mais le premier a trop de citations à mon goût.
Dennis