Patrón grep que tiene comillas dobles y sustitución de variables entre comillas simples

Patrón grep que tiene comillas dobles y sustitución de variables entre comillas simples

Entonces, digamos que tengo el siguiente patrón:

Thisisatest="1"

en un archivo llamado file.

Y quiero igualar elexactocadena arribaperoPor alguna razón, elijo recorrer algunos números de una lista, usarlos como variables e intentar hacer esto:

Thisisatest="$varhere"

Donde lo anterior $varherees igual al número anterior, siendo 1. (mientras mencioné el bucle sobre el número,estefue solo un posible caso de uso futuro para esto y sigue siendo un ejemplo)

Ahora, para facilitar las cosas, digamos que quiero igualar lo anterior.exactopatrónmientrasusando la variable anterior y su contenido:

grep 'Thisisatest="$varhere"' file

Donde el archivo contiene la cadena Thisisatest="1"y $varherecontiene el número 1.

El problema es que esto no funcionaría.porqueLa expansión de variables no ocurre entre comillas simples (como arriba).

Aquí el intento fallido de contrarrestar esto:

  1. sustitución de contenido por sustitución de variables
echo "${varhere/[0-9]*/Thisisatest=\"$varhere\"}"

Aquí uso echopara ver si genera elbiencadena para que pueda usarse como entrada para grep... en su lugar, genera esto:

'Thisisatest="'1'"
  1. Agregar más citas
echo "'Thisisatest="${varhere}"'"

producción:

'Thisisatest='1''
echo ''''Thisisatest=\"${varhere}\"''''

producción:

Thisisatest="'1'"

El resto es obvio... Ahora el último intento anterior parece estar cerca de lo que quiero, pero aún no es así.

¿Alguna forma de hacer lo anterior?

Respuesta1

grep "Thisisatest=\"${varhere}\""

funciona para mi. " \" invierte la bandera "Soy un personaje especial" del siguiente personaje a través de UNA interpretación de shell.

información relacionada