Скрипты
Скрипт — это текстовый файл, который операционная система понимает как последовательно
выполняемые команды. Каждая команда в скрипте приводится в виде отдельной строки.
Скрипт, который будет работать под Linux, необходимо сохранить с признаками
концов строк, принятыми в Linux (<Shift+F2> в редакторе Far manager или программа
noreturn пакета EMBOSS).
Для того, чтобы сделать ваш скрипт исполняемым, надо изменить тип файла с помощью
команды chmod. Запускается скрипт c указанием пути к нему
(если скрипт лежит в текущей директории, то для указания пути достаточно
поставить перед именем файла точку и косую черту, без пробелов).
Пример
Предположим, в текстовом файле sonets.txt находится текст всех сонетов Шекспира
(на английском, разумеется, языке). Предположим, вам захотелось узнать,
сколько среди всех сонетов строк, содержащих те или иные союзы
("and", "or", "but" и т.п.).
Вы знаете, что команда
grep -c ' and ' sonets.txt
выдаст вам на stdout число строк, содержащих слово "and", окружённое слева и справа
пробелами.
Чтобы решить эту задачу, вы создаёте текстовый файл wordcount.scr вида:
grep -c ' and ' sonets.txt >> wordcount.txt
grep -c ' or ' sonets.txt >> wordcount.txt
grep -c ' but ' sonets.txt >> wordcount.txt
...
|
Если вы создавали его в Far manager, то не забудьте перед выходом нажать
<Shift+F2> и выбрать в меню "Unix format". Если файл со скриптом создан каким-то
другим способом, то имеет смысл (на машине, где установлен EMBOSS, например,
на kodomo-count), выполнить команду
noreturn wordcount.scr wc_linux.scr
и дальнейшие действия производить уже с файлом wc_linux.scr.
Теперь надо сделать файл со скриптом исполняемым:
chmod +x wordcount.scr
и можно его запускать:
./wordcount.scr
В результате в вашей директории образуется файл wordcount.txt, в котором
будет содержаться колонка чисел. Поставив её (в Excel, например) рядом
с колонкой слов, которые вы считали, можно до конца жизни медитировать
над столь замечательным научным результатом...
Совет по написанию скриптов с однотипными строками
В приведённом примере (как и в том скрипте, который вам предстоит писать в процессе
выполнения задания), строки отличаются только исходными данными
(в примере — словами, число строк с которыми мы считаем).
Такой скрипт удобно делать с помощью Excel.
На отдельном листе Excel создайте столбец с теми самыми данными (пусть
это будет столбец A).
Рядом с первой ячейкой столбца (например, в ячейке B1) пишите формулу:
=CONCATENATE("grep -c ' ", A1, " ' sonets.txt >> wordcount.txt")
то есть функцией CONCATENATE ("СЦЕПИТЬ") вы создаёте строку, сцепляя
1) то, что
будет присутствовать в строке вашего скрипта перед данными;
2) сами данные;
3) то, что должно стоять после данных.
Теперь остаётся распространить формулу на такое число ячеек вниз, сколько ячеек
в столбце A занимают данные, а затем скопировать заполненную часть столбца B
в редактор Far manager (опять-таки не забудьте выполнить <Shift+F2>!).
Скрипт готов.