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 $varhere
es 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 $varhere
contiene 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:
- sustitución de contenido por sustitución de variables
echo "${varhere/[0-9]*/Thisisatest=\"$varhere\"}"
Aquí uso echo
para ver si genera elbiencadena para que pueda usarse como entrada para grep... en su lugar, genera esto:
'Thisisatest="'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.