Obtener una palabra de un texto

Este snippet funcionará en eggdrop y tcl. Puedes hacer las pruebas en tcl puro abriendo el intérprete de tcl (en shell: tclsh) y copiando y pegando.

# Variable de formato string
set text {Esto es una "frase" tipo string de longitud de texto que puedes usar para hacer la prueba.}
proc test {text} {
    putlog "Frase original: $text\n"
    # El comando split convierte una variable string en formato list separado en este caso por un espacio en blanco.
    set list [split $text " "]

    # lindex (List Index) obtiene el índice del list
    putlog "Primera palabra: [lindex $list 0]"
    putlog "Penúltima palabra: [lindex $list end-1]"
    putlog "Última palabra: [lindex $list end]\n"

    # También podemos obtener un rango
    set lrange [lrange $list 1 4]
    putlog "segunda hasta la quinta palabra: $lrange"
    # Ahora lrange es una variable tipo list con el rango especificado
    # Para mostrarlo debemos convertirlo de nuevo a formato string, que es el normal
    # (Prueba a añadir una coma en vez del espacio en blanco de la siguiente línea)
    set rangeString [join $lrange " "]
    putlog "String corregido: $rangeString\n"
    
    # Y para usuarios avanzados: ordenarlo en órden alfabético
    set orderString [join [lsort $lrange] ", "]
    putlog "Orden alfabético: $orderString"
}

# Uso este proc por si lo pruebas en tcl puro.
proc putlog {message} {
    puts $message
}

test $text

Resultado:

Frase original: Esto es una "frase" tipo string de longitud de texto que puedes usar para hacer la prueba.

Primera palabra: Esto
Penúltima palabra: la
Última palabra: prueba.

segunda hasta la quinta palabra: es una {"frase"} tipo
String corregido: es una "frase" tipo

Orden alfabético: "frase", es, tipo, una