Sencillo ejemplo de un SCRIPT EXPECT el cual permite leer un archivo en el cual cada línea contiene 6 campos separados por coma (,) Cada campo se asigna a una variable definida para poder trabajar con ellos. En este ejemplo cuando en el tercer campo tenga el valor «logrado» dicha línea debe ser grabada en un nuevo archivo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#!/usr/bin/expect # Abrir el archivo original para lectura set input_file [open "ruta/al/archivo.csv" r] # Abrir el nuevo archivo para escritura set output_file [open "ruta/al/nuevo_archivo.csv" w] # Leer cada línea del archivo while {[gets $input_file line] != -1} { # Dividir la línea en campos usando la coma como delimitador set fields [split $line ","] # Asignar cada campo a una variable set field1 [lindex $fields 0] set field2 [lindex $fields 1] set field3 [lindex $fields 2] set field4 [lindex $fields 3] set field5 [lindex $fields 4] set field6 [lindex $fields 5] # Comprobar si el tercer campo contiene el patrón "logrado" if {[string match "*logrado*" $field3]} { # Escribir la línea en el nuevo archivo puts $output_file $line } } # Cerrar los archivos close $input_file close $output_file |