Работа с текстовыми редакторами, процессами и файловыми системами
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
». Сценарий сохраните под именем list.sh в каталоге bin.
Содержание list.sh:FILE in~/*.txt QUIT[ -e $FILE]$FILE
- Встроенная команда интерпретатора read имя считывает строку со стандартного ввода и записывает её в переменную имя. Команда возвращает код завершения ноль если строка была успешно считана и код отличный от нуля если произошла ошибка или встретился конец файла. Напишите сценарий, который считывает строки со стандартного ввода и выводит их на стандартный вывод. (Используйте цикл while). Сценарий сохраните под именем s3.sh.
Содержание s3.sh:true; do
read line
echo $line
Лабораторная работа №8. Настройка сценариев
Цель:
Подробно изучить написание сценариев, ознакомиться с использованием условных операторов.
Ход выполнения:
- Проанализируйте файл /home/labs/back.sh
- В подкаталоге bin создайте файл case.sh:
- Выполните команду export UID
21:18:38rmpg3~$export UID
- Запустите сценарий без аргументов и последовательно с аргументами status, start, status, start, stop, status, stop. Результат сохраните в файле отчета.
- В подкаталоге bin создайте файл calc.sh:
22:35:57rmpg3~/binhome$sudo vim calc.sh
res=$1[[ $# -ge 2 ]] ; do=$(($res$1$2)) 2 done echo $res
6.Запустите сценарий следующими командами:
- calc.sh 1 + 2 \* 3 + 3 / 4]
22:41:57rmpg3~/binhome$sh calc.sh 1+2\*3+3/4]
+2
- calc.sh 1 + 2 \* 3
22:56:36rmpg3~/binhome$sh calc.sh 1 + 2 \* 3
+2
- calc.sh 1 + 2\*3
23:06:35rmpg3~/binhome$sh calc.sh 1 + 2\*3
+2*3
- calc.sh 1+2
23:09:39rmpg3~/binhome$sh calc.sh 1+2
+2
- Объясните почему различается результат в случаях b) и c).
Различаются формулы, в случае b) стоит пробел между 2 и \* и 3 .
- Исправьте сценарий так, чтобы в случае d) он выдавал результат 3.
res=$1[[ $# = -ge ]]; do
res$(($res$1$2))
shift| $# -lt 2|: then
res=$(($res))$res
- Напишите сценарий summ.sh выводящий сумму своих аргументов если первый аргумент +, произведение если первый аргумент и сообщение Usage: summ.sh +|* arguments ... в противном случае. Например:
bash-2.04$ summ + 4 8 3
.04$ summ \* 4 2 3
содержание summ.sh:[$1="+"]$[$2+$3+$4][$1="\\*"]$[$2*$3*$4]
Лабораторная работа №9. Базовые регулярные выражения. Редактор sed.
Цель: Изучить информацию о базовых регулярных выражениях (BRE).
Ознакомиться с потоковым редактором sed, который считывает строки из текстового файла или стандартного ввода.
Ход работы:
- Скопируйте в домашний каталог файл /home/labs/text.txt
23:55:12rmpg3~$cp /home/rmpg3/labs/text.txt /home/rmpg3
- Выведите в файл отчета все строки файла text.txt содержащие слово "Благозвон". Добавьте к файлу отчета количество найденных строк.
>lab9.txt">00:05:21rmpg3~$grep -e Благозвон text.txt>>lab9.txt
>lab9.txt">:05:42rmpg3~$grep -c -e Благозвон text.txt>>lab9.txt
в файл вывелосьpeace Благозвон
Изображения Благозвон
./Документы: Благозвон
снимок4.png Благозвон
ВСЕМ Благозвон ПОЦОНЫ
ПОЛУЧАЕТСЯ Благозвон
- Добавьте к файлу отчета все строки файла text.txt, которые начинаются с буквы "Б" (возможно после нескольких пробелов).
>lab9.txtpeace">00:10:08rmpg3~$grep -e Б text.txt>>lab9.txtpeace Благозвон
Изображения Благозвон
./Документы: Благозвон
снимок4.png Благозвон
ВСЕМ Благозвон ПОЦОНЫ
ПОЛУЧАЕТСЯ Благозвон
- Добавьте к файлу отчета все непустые строки файла text.txt, не содержащие русскую букву "а" (в любом регистре).
>lab9.txt">00:15:21rmpg3~$grep -iv -e [а] text.txt>>lab9.txt
- Добавьте в файл отчета имена файлов каталога /home/labs, которые содержат слово "include".
>lab9.txt">00:18:49rmpg3~$find /home/rmpg3/labs -name include* -type f>>lab9.txt
/home/rmpg3/labs/include2.txt
/home/rmpg3/labs/include1.txt
/home/rmpg3/labs/include3.txt
- Используя редактор sed замените в файле text.txt все слова Снарк на СНАРК. Результат сохраните в файле snark.txt.
…...
./labs:
./test1:
СНАРК
СНАРК
./test2:СНАРКСНАРКСНАРКСНАРКСНАРКСНАРК
.СНАРК/Видео:СНАРК
./Документы: Благозвон.doc
…...
- При помощи sed выведите из файла /etc/passwd идентификаторы пользователей и их имена, разделенные символом табуляции, в формате:
- root
- daemon
- operator …
Вывод должен быть отсортирован по идентификатору пользователя. Результат добавьте к файлу отчета.
>lab9.txt">01:32:08rmpg3~$cat /etc/passwd | sed s/:x:/" "/ | sed s/:[0-9]*.*// | sed s/"[a-z]* "// | sort -g >> lab9.txt
9.Напишите сценарий для sed, который будет менять местами каждые две строки файла. Возможно sed прийдется запускать с ключом -n.
Создаю файл txt.txt#9
и пустой txt1.txt
txt1.txt#9">01:57:11rmpg3~$sed -n -f 1.sed txt.txt>txt1.txt#9
- Напишите сценарий для редактора sed, который будет добавлять:
- В начало файла строку "".
- В начало всех строк начинающихся словом "Приступ" строку "".
- В конец всех остальных строк "".
- К концу последней строки ""
Результат работы сценария сохраните в файле snark.html в каталоге public_html домашнего каталога (каталог потребуется создать). Сценарий сохраните под именем sed1 в домашнем каталоге.
Содержание 11.sed:
1i \
/^Pristup/i \
/^Pristup/a \
$a \
$!a \
text9.php">:12:18rmpg3~$sed -f 11.sed text9.txt > text9.html
Исходный файл text9.txt:failokok
Полученный text9.htmlfail
Pristup
Pristup
vse ok ok ok end