Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Утилита поиска строк в текстовых файлах 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. Индивидуальные задания для студентов бригад
Примечание. Для решения задач можно использовать команду Findstr, если ее использование позволит упростить решение.
Готовится с помощью офисного текстового процессора один на бригаду из двух студентов. Бригада из трех студентов готовит два отчета. В отчете должны быть приведены описания алгоритмов решения задач п.4.1 - п.4.5 и п.5, решенных каждым студентом бригады N, листинги КФ, исходные данные, использованные для тестирования КФ, и результаты выполнения КФ с приведенными исходными данными.
1. Использование параметров командной строки. Команда Shift. 2. Операции со строковыми и числовыми переменными. Команда SET. 3. Проверка существования заданного файла. 4. Операторы перехода и вызова. 5. Выполнение заданной команды для всех элементов указанного множества. 6. Выполнение заданной команды для всех подходящих имен файлов. 7. Выполнение заданной команды для определенного каталога, а также всех его подкаталогов. 8. Получение последовательности чисел с заданными началом, концом и шагом приращения. 9. Чтение и обработка строк из текстового файла. 10. Команда Findstr. Назначение. Ключи. Использование регулярных выражений в команде. Задание и использование класса цифр и класса букв. 11. Символы, используемые в регулярных выражениях. Правила использования. 12. Какое минимальное количество строк (включая @echo off) должен иметь КФ, выводящий на экран минимальное значения двух числовых аргументов? 13. Какое минимальное количество строк (включая @echo off) должен иметь КФ, выводящий на экран минимальное значения трех числовых аргументов?
|