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?

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}'

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.