¿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?

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

¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.