es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtengo el valor presente entre las primeras comillas dobles?

Actualmente estoy escribiendo un script de bash para obtener el primer valor entre diferentes cadenas separadas por comas. Tengo un archivo que se ve así –

name
things: "botella de agua","40","nueva cubierta de teléfono",10
lugar

Solo necesito devolver el valor entre las primeras comillas dobles.

botella de agua

El valor entre las primeras comillas dobles puede ser una palabra o dos palabras. Es decir, botella de agua a veces puede ser reemplazada por pluma.
He intentado con –

awk '/: / {print $2}'

Pero esto solo da

agua

Quería separarlo por comas, pero hay un dos puntos(:) después de things. Entonces, no estoy seguro de cómo separarlo.
¿Cómo obtengo el valor presente entre las primeras comillas dobles?

EDICIÓN:
SOLUCIÓN:
Usé el siguiente código ya que particularmente quería usar awk –

awk '/: /' test.txt | cut -d\" -f2
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el valor presente en las primeras comillas dobles entre una serie de cadenas separadas por comas en un script de bash, puedes utilizar el siguiente comando:

    awk -F',' '/:/{print $2}' archivo.txt | sed 's/"//g' | head -n1
    

    Aquí,

    • awk -F',' '/:/{print $2}' archivo.txt busca la línea que contiene dos puntos y imprime el segundo campo separado por comas.
    • sed 's/"//g' elimina todas las comillas dobles de la salida.
    • head -n1 obtiene la primera línea de la salida, que es el valor presente en las primeras comillas dobles.

    Por ejemplo, al ejecutar este comando en el archivo dado:

    name
    
    
    things: "water bottle","40","new phone cover",10
    
    
    
    place
    

    devolverá water bottle.

Comments are closed.