Вы использовали дважды получает, поэтому вы получаете только нечетные строки
Другое решение:
Вместо использования get я предпочитаю использовать функцию чтения, чтобы прочитать все содержимое файлаа затем обрабатывать эти строки за строкой.Таким образом, мы полностью контролируем работу над файлом, имея его в виде списка строк
set fileName [lindex $ argv 0]
catch {set fptr [open $ fileName r]};
установить содержимое [read $ fptr]; # прочитать содержимое файла
закрыть $ fptr; закрыть файл, поскольку он был прочитан сейчас
set splitCont [split $ contents"\ n"]; # Разбить содержимое файлов на новую строку
splitCont - список, в котором строки файла имеют отдельные элементы