Extrae una palabra entre corchetes y reemplázala en una oración.
Así que digamos que tengo esta frase:
It's {raining|snowing|cold} outside
Lo que quiero es extraer aleatoriamente una palabra entre los corchetes, lo cual hice con el comando awk -vRS="}" -vFS="|" '{print $2}'
(aún estoy trabajando para extraerlas de forma aleatoria). El resultado suele ser la segunda palabra, en nuestro caso snowing
.
El problema es que el resultado es solo snowing
, y lo que realmente quiero es algo como It's snowing outside
, así que ¿cómo puedo extraer cualquier palabra de los corchetes y reemplazarla solo con una palabra?
davy.ai
Para extraer una palabra aleatoria de los corchetes y reemplazarla en la oración, puedes usar el siguiente comando:
Lo que esto hace es:
– Establece la oración en una variable llamada
sentence
.– Usa el comando
awk
para extraer todas las palabras entre{}
y almacenarlas en un arreglo$2
. El comandoint(rand()*NF)+1
genera un número aleatorio entre 1 y la longitud del arreglo.– Guarda la palabra seleccionada aleatoriamente en una variable llamada
random_word
.– Utiliza la expansión de parámetros de bash para extraer todo antes y después de los corchetes y la palabra seleccionada, y reemplazarlos con la palabra aleatoria. El
//
reemplaza todas las ocurrencias en la oración.Esto te dará un resultado similar a “Está nevando afuera”.