Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Утилита поиска строк в текстовых файлах Findstr






Назначение утилиты Findstr - поиск строк в текстовых файлах. Вызов утилиты имеет вид:

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/F: файл]

[/C: строка] [/G: файл] [/D: список_папок] [/OFF[LINE]]

строки [[диск: ][путь]имя_файла[...]]

 

/L поиск строк дословно.

/R поиск строк как регулярных выражений.

/S поиск файлов в текущей папке и всех ее подпапках.

/I определяет, что поиск будет вестись без учета регистра.

/X печатает строки, которые совпадают точно.

/V печатает строки, не содержащие совпадений с искомыми.

/N печатает номер строки, в которой найдено совпадение, и ее содержимое.

/M печатает только имя файла, в которой найдено совпадение.

/O печатает найденный строки через пустую строку.

/F: файл читает список файлов из заданного файла (/ для консоли).

/C: строка использует заданную строку как искомую фразу поиска.

/D: список_папок поиск в списке папок (разделяются точкой с запятой).

строка искомый текст.

[диск: ][путь]имя_файла - задает имя файла или файлов.

 

Можно использовать пробелы для разделения нескольких искомых строк. Например, команда 'FINDSTR " Привет мир" a.b' ищет " Привет" или " мир" в файле a.b, а команда с ключом /C

FINDSTR /C: " Привет мир" a.b ищет строку " Привет мир" в файле a.b.

Утилита FindStr c ключом /R дает возможность использовать для задания шаблона поиска несложные регулярные выражения. Краткая справка по синтаксису регулярных выражений:

. Любой символ.

* Повтор: ноль или более вхождений предыдущего символа или класса

^ Позиция в строке: начало строки

$ Позиция в строке: конец строки

[класс] Класс символов: любой единичный символ из множества

[^класс] Обратный класс символов: любой единичный символ из дополнения

[x-y] Диапазон: любые символы из указанного диапазона, например [0-1] –двоичная цифра, [a-z] – строчная буква латинского алфавита

\x Служебный символ: символьное обозначение служебного символа x (символ \ называется экранирующим. Например \. означает точку, а не любой один символ строки).

\< xyz Позиция в слове: в начале слова

xyz\> Позиция в слове: в конце слова

Пример 11. КФ для подсчета количества строк в файле num.txt, в которых присутствует хотя бы одна двоичная цифра.

set /a kol=0

for /f %%b in ('findstr /rc: " [0-1]" num.txt') do set /a kol=kol+1

echo %kol%

 

2. МЕТОДИКА ВЫПОЛНЕНИЯ

1. Неформально ознакомиться с теоретическими сведениями.

2. Для подготовки текстов КФ рекомендуется использовать блокнот (Notepad), следует избегать использования в выводимых на экран результатах работы КФ букв русского алфавита.

3. На этапе отладки КФ следует закомментировать строки @ECHO OFF и CLS.

4. Разработать и выполнить КФ, выполняющие следующие функции:

Вывод на экран имен всех файлов с указанным расширением, находящихся в каталоге, имя которого задается при запуске КФ первым параметром. Расширение файлов задается вторым параметром. Полученный КФ должен состоять из ОДНОЙ строки.

Среди введенных с клавиатуры целых чисел (использовать SET /P) найти наибольшее и наименьшее. Признак конца ввода – знак -. Использовать цикл с использованием GOTO.

В заданном каталоге и его подкаталогах найти общее количество подкаталогов. На экран вывести только требуемый результат. Использовать цикл FOR /D.

В каталогах, имена которых заданы первым и вторым параметрами КФ, найти и вывести на экран имена файлов (расширения могут быть любые), присутствующих как в первом, так и во втором каталогах. Использовать один FOR и IF для проверки присутствия файла во втором каталоге.

Вычисление и вывод на экран значения факториала целого числа, задаваемого при запуске КФ (в командной строке). Предусмотреть проверку заданного значения и при задании отрицательного значения или значения, превышающего максимально допустимую величину, выводить соответствующие сообщения. Использовать FOR /L. Проверить правильность вычисленного значения факториала с помощью калькулятора.

5. Разработать и выполнить КФ в соответствии с табл. 5.

6. Ответить (устно) на контрольные вопросы. Устными ответами, записанными на бумаге, во время отчета бригады по выполненной работе пользоваться нельзя.


Таблица 5. Индивидуальные задания для студентов бригад

№№ бр. Действия, выполняемые КФ
  1.Подсчет количества целых чисел в текстовом файле. Считать, что слова в файле записаны в формате одно или два слова в строке через пробел(ы). Слово – это целое число (состоящее из десятичных цифр) или последовательность букв латинского алфавита, начинающаяся с буквы или цифры. Имя файла задается первым параметром КФ. 2. Вывод на экран списка файлов, хранящихся в указанном первым параметром командной строки каталоге и созданных в первом полугодии (месяцы 1-6) года, указанного вторым параметром КФ.
  1. В каталоге, указанном первым параметром КФ, (и его подкаталогах) найти файл наибольшего размера с расширением, указанным вторым параметром КФ. Вывести имя и размер файла. 2. В каталоге, указанном первым параметром КФ, (и его подкаталогах) найти ТРИ файла самого большого размера. Вывести имена файлов, их размеры и даты создания
  1. В каталоге, указанном первым параметром КФ, найти файлы, имеющие размер более значения, заданного вторым параметром КФ и скопировать их в отдельный подкаталог. 2. В каталоге, указанном первым параметром КФ, (и его подкаталогах) найти суммарный объем файлов, имеющих расширение, указанное вторым параметром КФ.
  1. Удаление из каталога, заданного первым параметром, файлов, которые присутствуют и в каталоге, указанным вторым параметром. Перед удалением файлы скопировать в каталог, указанный третьим параметром КФ и заархивировать архиватором 7za. 2. В каталоге, указанном первым параметром КФ, и его подкаталогах, найти файлы, созданные во второй половине рабочего дня (после 14 часов), скопировать их в отдельный подкаталог и заархивировать архиватором 7za.
  1. Нахождение суммарного объема файлов с атрибутом только чтение, хранящихся в каталоге, имя которого задано первым параметром КФ. 2. Проверить наличие файла Numb.txt в каталоге, указанном первым параметром КФ. В этом файле записаны целые и вещественные числа по формату одно число в строке. Прочитать целые числа из файла, найти их сумму и вывести числа и их сумму на экран. Найти количество вещественных чисел и вывести найденное значение на экран.
  1. Среди выполняющихся на ПК программ найти и вывести на экран имя программы, использующей наибольший объем памяти 2. Проверка наличия на диске в каталоге, указанном первым параметром КФ, файла FNames.txt, содержащего список имен файлов и подкаталогов. Если он есть – проверка наличия перечисленных в списке файлов и вывод имен отсутствующих. Если файла FNames нет, создание его и запись имен файлов и подкаталогов.
  1. Вывод списка DLL (хранящихся на доступном диске), созданных до 12.2011 размером до 12000 байтов. 2. Проверка наличия на диске в каталоге, указанном первым параметром КФ, файла Numbers.txt, содержащего 2 столбца целых чисел, столбцы располагаются с позиций 2 и 20 и отделены пробелами. Если файла нет – вывод сообщения. Если файл есть, создать новый файл, содержащий три столбца, в третий поместить сумму чисел из двух первых столбцов.
  1. Просмотр содержимого каталога, указанного первым параметром КФ. Необходимо: 1. создать подкаталоги с именами EXE, TXT, CMD, DOC и OTHER. 2. В каждый подкаталог скопировать файлы с соответствующими расширениями. 3. Пустые подкаталоги удалить. 2. Среди выполняющихся на ПК программ найти и вывести на экран имена пяти программ, использующих наибольшее количество времени CPU.
  1. Среди выполняющихся на ПК программ найти имена программ, запущенных системой. 2. Подсчет количества положительных и отрицательных чисел целых чисел в текстовом файле. Считать, что слова в файле записаны в формате ОДНО СЛОВО В СТРОКЕ. Имя файла задается первым параметром КФ.
  1. Подсчет количества слов в текстовом файле, содержащем целые числа и слова русского и английского языков. Считать, что слова в файле записаны в формате ОДНО СЛОВО В СТРОКЕ. Число – это целое число, состоящее из десятичных цифр. Слово - последовательность букв латинского (или русского) алфавитов. Имя файла задается первым параметром КФ. 2. Просмотр содержимого каталога, указанного первым параметром КФ. Необходимо: 1. создать подкаталоги с именами 1, 2,..., 12. 2. В каждый подкаталог скопировать файлы, созданные в соответствующие месяцы. 3. Пустые подкаталоги удалить.
№№ бр. Действия, выполняемые КФ
  1. Подсчет количества строк в текстовом файле, имя которого задано первым параметром КФ. Проверить наличие указанного файла и вывести сообщение об его отсутствии. 2. Найти количество выполняющихся на ПК программ и количество пользовательских программ
  1. Вывод на экран аргументов, с которыми КФ был запущен, число аргументов от 4 до 11. Поиск и вывод на экран минимального и максимального значений аргументов КФ. Предполагается, что все аргументы КФ – целые положительные числа. При неверном числе аргументов ничего не выполнять, сообщить об ошибке. 2. Среди выполняющихся на ПК программ найти имена программ, имеющих окна. Имена программ и названия принадлежащих им окон вывести на экран.

 

Примечание. Для решения задач можно использовать команду Findstr, если ее использование позволит упростить решение.

 

  1. ОТЧЕТ О РАБОТЕ

Готовится с помощью офисного текстового процессора один на бригаду из двух студентов. Бригада из трех студентов готовит два отчета.

В отчете должны быть приведены описания алгоритмов решения задач п.4.1 - п.4.5 и п.5, решенных каждым студентом бригады N, листинги КФ, исходные данные, использованные для тестирования КФ, и результаты выполнения КФ с приведенными исходными данными.

 

  1. КОНТРОЛЬНЫЕ ВОПРОСЫ

 

1. Использование параметров командной строки. Команда Shift.

2. Операции со строковыми и числовыми переменными. Команда SET.

3. Проверка существования заданного файла.

4. Операторы перехода и вызова.

5. Выполнение заданной команды для всех элементов указанного множества.

6. Выполнение заданной команды для всех подходящих имен файлов.

7. Выполнение заданной команды для определенного каталога, а также всех его подкаталогов.

8. Получение последовательности чисел с заданными началом, концом и шагом приращения.

9. Чтение и обработка строк из текстового файла.

10. Команда Findstr. Назначение. Ключи. Использование регулярных выражений в команде. Задание и использование класса цифр и класса букв.

11. Символы, используемые в регулярных выражениях. Правила использования.

12. Какое минимальное количество строк (включая @echo off) должен иметь КФ, выводящий на экран минимальное значения двух числовых аргументов?

13. Какое минимальное количество строк (включая @echo off) должен иметь КФ, выводящий на экран минимальное значения трех числовых аргументов?






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.