¿Cómo usar un separador awk de comillas simples?

11

Me gustaría usar awk para extraer información de la salida SQL como la siguiente:

(cuenta (clase de servidor distinta) = '2')

Y necesita extraer el número, que es 2 en este ejemplo.

Me gustaría hacer algo como lo siguiente, pero no puedo entender cómo escapar de la cita simple:

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

¿Cómo puedo obtener una comilla simple literal como mi separador de campo en awk?

WilliamKF
fuente

Respuestas:

14

Para insertar un carácter de comillas simples en una cadena entre comillas simples, finalice la cadena actual, escriba "'"o \'y comience la cadena nuevamente.

En tu ejemplo, eso es

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

o

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

Sin embargo, usar el -Finterruptor para especificar el separador de campo dará como resultado un código más legible:

awk -F\' '{print $2}'
Dennis
fuente
¿Por qué actualizaste el estilo de -F"'"a -F\'?
WilliamKF
1
No hay buena razón Ambos funcionan, pero el primero tiene demasiadas citas para mi gusto.
Dennis