La cita es todo mal. ¿Por qué usa comillas simples, barras invertidas, comillas simples, comillas simples, y siempre en ese orden? De todos modos, tiene una comilla doble sin comillas, por lo que la shell espera que agregue una cotización de cierre para la cadena entre comillas que comienza con esa comilla doble de apertura.
Como una cuestión de estilo, también debe perder el Useless Use of Cat, y pensar en cómo simplificar su secuencia de comandos. Al menos:
grep -v ^# /abc | grep -i root | sed -e 's/"//g' | awk '{print $2}'
... pero en la práctica
awk '/^#/ { next } /[Rr][Oo][Oo][Tt]/ { gsub ("\"",""); print $2 }' /abc
Debido a que algunos de los personajes de los awk
y sed
guiones tienen un significado especial para el shell, los ponemos entre comillas simples. Si necesita tener comillas simples en una secuencia de comandos, debe doblarlas; un patrón frecuente es tener una cadena en comillas simples adyacentes a una cadena entre comillas dobles, como esta: echo '"'"'"
. Esto muestra "
(entre comillas simples) seguido inmediatamente por '
(entre comillas dobles).
Editar Análisis actualizado del problema de las citas; ejemplo de código agregado; ejemplo de código corregido. La edición final corrige las citas de gsub
en awk script, y agrega una pequeña discusión de las citas.
¿Qué estás tratando de hacer? En otras palabras, ¿cuál es su entrada y salida? Tengo la sensación de que puedes lograr tu tarea solo con awk. –