Я новичок в написании сценариев и активно изучаю TCL для разработки встроенных систем.
Я должен искать файлы только с форматом .txt в текущем каталоге, подсчитывать количество случаев для каждой отдельной строки "Interface # nnnn" в файле .txt, где nnnn - это максимум от 4 до 32 цифр шестнадцатеричного числа и o / p таблицы номера интерфейса против появления. Я сталкиваюсь с проблемами реализации при написании скрипта, т.е. не могу реализовать структуру данных, такую как Linked List, двумерный массив.
Я переписываю сценарий с использованием многомерного массива (передача значений в массивы в и из процедуры) в TCL для сканирования каждого файла .txt и поиска строки / регулярного выражения 'Interface #' для подсчета и отображения числа случаев. Если кто-то может помочь мне завершить эту часть, мы будем очень благодарны.
Поиск только файлов с расширением .txt и получение размера файла
Вот мой кусок кода для поиска .txt файла в текущей директории
set files [glob *.txt]
if { [llength $files] > 0 } {
puts "Files:"
foreach f [lsort $files] {
puts " [file size $f] - $f"
}
} else {
puts "(no files)"
}
Я считаю, что это все возможные логические шаги для его завершения.
i) После поиска и поиска файла .txt откройте все файлы .txt в режиме только для чтения.
ii) Создать массив или список, используя процедуру (proc). Номер интерфейса равен нулю, а количество интерфейсов равно нулю 0
iii) Сканирование в файл .txt и поиск строки или регулярного выражения "interface #
iv) Когда совпадение найдено в файле .txt, проверьте номер интерфейса и увеличьте счетчик для соответствующей записи. В противном случае добавьте новый элемент в список номеров интерфейсов.
v) Если нет файлов, вернитесь в первый каталог
Мой o / p выглядит следующим образом
Interface Frequency
123f 3
1232 4