Работа с текстовыми редакторами, процессами и файловыми системами

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

». Сценарий сохраните под именем list.sh в каталоге bin.

Содержание list.sh:FILE in~/*.txt QUIT[ -e $FILE]$FILE

 

  1. Встроенная команда интерпретатора read имя считывает строку со стандартного ввода и записывает её в переменную имя. Команда возвращает код завершения ноль если строка была успешно считана и код отличный от нуля если произошла ошибка или встретился конец файла. Напишите сценарий, который считывает строки со стандартного ввода и выводит их на стандартный вывод. (Используйте цикл while). Сценарий сохраните под именем s3.sh.

Содержание s3.sh:true; do

read line

echo $line

 

Лабораторная работа №8. Настройка сценариев

 

Цель:

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

Ход выполнения:

  1. Проанализируйте файл /home/labs/back.sh
  2. В подкаталоге bin создайте файл case.sh:

 

  1. Выполните команду export UID

21:18:38rmpg3~$export UID

  1. Запустите сценарий без аргументов и последовательно с аргументами status, start, status, start, stop, status, stop. Результат сохраните в файле отчета.
  2. В подкаталоге bin создайте файл calc.sh:

22:35:57rmpg3~/binhome$sudo vim calc.sh

res=$1[[ $# -ge 2 ]] ; do=$(($res$1$2)) 2 done echo $res

6.Запустите сценарий следующими командами:

  1. calc.sh 1 + 2 \* 3 + 3 / 4]

22:41:57rmpg3~/binhome$sh calc.sh 1+2\*3+3/4]

+2

  1. calc.sh 1 + 2 \* 3

22:56:36rmpg3~/binhome$sh calc.sh 1 + 2 \* 3

+2

  1. calc.sh 1 + 2\*3

23:06:35rmpg3~/binhome$sh calc.sh 1 + 2\*3

+2*3

  1. calc.sh 1+2

23:09:39rmpg3~/binhome$sh calc.sh 1+2

+2

 

  1. Объясните почему различается результат в случаях b) и c).

Различаются формулы, в случае b) стоит пробел между 2 и \* и 3 .

  1. Исправьте сценарий так, чтобы в случае d) он выдавал результат 3.

 

res=$1[[ $# = -ge ]]; do

res$(($res$1$2))

shift| $# -lt 2|: then

res=$(($res))$res

 

  1. Напишите сценарий 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, который считывает строки из текстового файла или стандартного ввода.

 

Ход работы:

  1. Скопируйте в домашний каталог файл /home/labs/text.txt

23:55:12rmpg3~$cp /home/rmpg3/labs/text.txt /home/rmpg3

  1. Выведите в файл отчета все строки файла 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 Благозвон

ВСЕМ Благозвон ПОЦОНЫ

ПОЛУЧАЕТСЯ Благозвон

  1. Добавьте к файлу отчета все строки файла text.txt, которые начинаются с буквы "Б" (возможно после нескольких пробелов).

>lab9.txtpeace">00:10:08rmpg3~$grep -e Б text.txt>>lab9.txtpeace Благозвон

Изображения Благозвон

./Документы: Благозвон

снимок4.png Благозвон

ВСЕМ Благозвон ПОЦОНЫ

ПОЛУЧАЕТСЯ Благозвон

  1. Добавьте к файлу отчета все непустые строки файла text.txt, не содержащие русскую букву "а" (в любом регистре).

>lab9.txt">00:15:21rmpg3~$grep -iv -e [а] text.txt>>lab9.txt

  1. Добавьте в файл отчета имена файлов каталога /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

  1. Используя редактор sed замените в файле text.txt все слова Снарк на СНАРК. Результат сохраните в файле snark.txt.

…...

 

./labs:

./test1:

СНАРК

СНАРК

./test2:СНАРКСНАРКСНАРКСНАРКСНАРКСНАРК

 

.СНАРК/Видео:СНАРК

./Документы: Благозвон.doc

…...

 

  1. При помощи sed выведите из файла /etc/passwd идентификаторы пользователей и их имена, разделенные символом табуляции, в формате:

 

  1. root
  2. daemon
  3. 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

  1. Напишите сценарий для редактора sed, который будет добавлять:
  2. В начало файла строку "".
  3. В начало всех строк начинающихся словом "Приступ" строку "".
  4. В конец всех остальных строк "".
  5. К концу последней строки ""

Результат работы сценария сохраните в файле 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