Презентация Условная выборка строк онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Условная выборка строк абсолютно бесплатно. Урок-презентация на эту тему содержит всего 56 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Условная выборка строк
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:56 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:165.00 kB
- Просмотров:62
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№1 слайд
Содержание слайда: Условная выборка строк
Операторы-шаблоны, используемые для выбора строк, позволяют решать, какие строки обрабатывать, а какие - игнорировать.
Пример.
Вывести все автомобили, цены которых больше 3000$.
awk '$3 > 3000 {print $0}' cars.file
Оператор-действие выводит на экран все найденные автомобили
Оператор-шаблон выбирает строки, в которых цены больше 3000.
№2 слайд
Содержание слайда: Составные шаблоны
Для конструирования составных шаблонов можно использовать логические операции и круглые скобки.
В этом случае могут применяться следующие символы:
~ - искать по образцу;
// - для обозначения шаблона;
&& - логическая операция «И»;
II - логическая операция «ИЛИ»;
! - логическая операция «Отрицание».
№3 слайд
Содержание слайда: Примеры.
(NF < 3) || (NF > 4)
Этот шаблон соответствует всем записям ввода, которые не имеют точно четырех полей.
Шаблон
/^[a-d].*/
эквивалентен шаблону /^a.*/ || /^b.*/ ||/^c.*/ ||/^d.*/
С помощью этого шаблона отыскиваются все строки, начинающиеся с символов a, b, c и d.
№8 слайд
Содержание слайда: Операторы в awk
В программе awk возможно применение некоторых сложных операторов.
В основном они совпадают с языком Си и shell.
А) Оператор if - такой же, как и в Си
if (условие) оператор_1; [else оператор_2]
Если оператор_1 и оператор else находятся в одной строке, то они обязательно отделяются друг от друга символом “точка с запятой”.
№9 слайд
Содержание слайда: При выполнении более, чем одного оператора в оператор_1 или в оператор_2 необходимо их заключать в фигурные скобки.
Условие ? оператор_1 : оператор_2
Если условие истинно, то выполняется оператор_1, иначе оператор_2.
Данный оператор удобен для вывода сообщений об ошибках.
№12 слайд
Содержание слайда: Е) Опереатор next вызывает чтение следующей входной строки и сопоставление ее с шаблонами в начале программы awk.
Ж) Оператор exit [статус] вызывает немедленный переход на действия, определенные в шаблоне END.
Если шаблона END нет или в нем есть exit, то сценарий заканчивается сразу.
Если оператор exit применен без параметра, то он заканчивает программу со значением статуса, равным нулю, иначе – со значением вычисленного выражения параметра. Значение статуса присваивается встроенной переменной $?.
№14 слайд
Содержание слайда: Дополнительные переменные
ARGC - количество аргументов командной строки.
ARGV - массив, содержащий аргументы командной строки.
Индексы идут от 0 до ARGC – 1.
ARGV [0] – это всегда команда awk. Доступные опции UNIX не занимают массив ARGV.
FNR - номер текущей записи внутри файла ввода. Причем FNR <= NR.
Другими словами FNR ведет учет номера записи только текущего файла, а NR – номера строки всех файлов.
№16 слайд
Содержание слайда: FLENGTH - хранит значение длины строки сопоставления, производимого
функцией match().
FSTART - хранит значение начала строки сопоставления, производимого
функцией match(). По значениям FLENGTH и FSTART можно определить, что именно сопоставлялось.
SUBSEP - значение разделителя сценариев. По умолчанию хранит символ
двойных кавычек 0348, что эквивалентно 2810 или 1С16.
№17 слайд
Содержание слайда: ENVIRON - массив, содержащий значения текущих переменных окружения.
Индексы массива – это имена самих переменных, а элементы массива – это значения этих переменных. Для выделения названий и их значений удобно иcпользовать цикл for .. in.
Пример. Программа вывода листинга программ с номерами строк, если vi используется в качестве редактора по умолчанию.
ENVIRON[EDIDOR] == “vi” {print NR, $0};
№18 слайд
Содержание слайда: CONVFMT - формат преобразования чисел. Ее значение по умолчанию - %6g.
Эта переменная обычно используется только для внутреннего применения.
FIELDWIDTHS - переменная представляет возможность работы программисту с
полями фиксированной ширины, не привязываясь к отдельным символам разделителя полей.
№19 слайд
Содержание слайда: Если она определена, то считается, что все поля имеют фиксированную ширину. В этом случае запись ввода разделяется с использованием значений ширины поля, определенных в переменной FIELDWIDTHS.
При этом значение переменной FS не учитывается. Но в случае присваивания переменной FS нового значения, эта переменная отменяет использование переменной FIELDWIDTHS, и она восстанавливает значение по умолчанию.
№20 слайд
Содержание слайда: Значения переменной FIELDWIDTHS – числа, разделенные пробелами или табуляцией, поэтому поля не обязательно должны быть одинаковой ширины.
Пример.
В файле file.me первый символ обозначает “пол” человека. 0 - женщина, 1 – мужчина. Последний столбец - возраст служащих.
1Petrov, Ivan 24
1Ivanov, Petr 26
0Silina, Lina 25
№22 слайд
Содержание слайда: Здесь
1 – первое поле длиною 1;
7 – второе поле длиною 7 (фамилия, запятая и пробелы);
1 – третье поле длиною 1 (пробел);
4 – четвертое поле длиною 4 (имя);
1 – пятое поле длиною 1 (пробел);
2 – шестое поле длиною (возраст).
Внимание!
При использовании FIELDWIDTHS нельзя забывать ни об одном разделителе поля. Учитываются все пробелы между словами.
№24 слайд
Содержание слайда: Взаимодействие с интерпретатором
Вопрос в следующем, как передать программе на awk значения переменных из командной строки?
Способ 1.
Аргументы командной строки доступны в awk посредством встроенного массива ARGV. Переменная ARGC определяет количество аргументов в командной строке.
№25 слайд
Содержание слайда: Пример 1.
awk –f programfile In.file
В данном случае массив ARGV будет иметь следующие значения:
ARGV[0] – awk
ARGV[1] – In.file
ARGC = 2
Так как не существует аргумента опций, то programfile не считается аргументом.
Если бы в командной строке была опция “–F,”, то массив ARGV не содержал бы также запятой.
№26 слайд
Содержание слайда: Способ 2.
Для передачи значений переменных надо присвоить значения этим переменным, то есть необходимо или в командной строке или в файле shell определить переменные и их значения.
awk –f programfile In.file X=1 FS=,
Пример 2
Сочетание программы shell и awk. Программа вводит значение переменной TZ в программу awk.
№27 слайд
Содержание слайда: echo $TZ
awk ‘/^”TZ”/ {print $1,$2}’ file.me TZ=”abcd”
Способ 3.
Предположим, что мы хотим создать программу field N, которая печатает N-е поле каждой входной строки так, чтобы можно было задать этот номер.
Hапример, в конвейере
who | field 1
будет печататься список имен, под которыми пользователь входит в систему.
№28 слайд
Содержание слайда: Язык awk может явно предоставлять возможность выбора полей. Hаша задача - передать номер N программе awk.
Вариант 1.
awk ‘{print $ '$1'}’
Здесь $1 открыто (не внутри каких-либо кавычек), и поэтому становится номером поля, доступным в программе awk.
Вариант 2.
awk '{print \$$1}’
Аргумент обрабатывается интерпретатором и поэтому \$ становится просто $, а $1 заменяется на значение N
№31 слайд
Содержание слайда: Здесь шаблон BEGIN используется для засылки значения в переменную N, чтобы не засорять конец программы кавычками.
Основная трудность во всех этих примерах состоит не в том, что бы следить за кавычками ( хотя это дело очень хлопотливое), а в том, что программы, составленные таким образом, могут читать только свой стандартный входной поток.
№33 слайд
Содержание слайда: Функции
Функции могут использоваться в любом месте, где может применяться оператор-действие.
Функции имеют свободный формат, но должны разделяться точками с запятой или символами новой строки.
Синтаксис определения функции следующий:
function Имя(Список_аргументов)
{Тело функции}
При объявлении функции в этой части Имя(Список нет пробела.
№34 слайд
Содержание слайда: Список аргументов идет через запятые. Это переменные, что используются внутри функции.
Тело функции – это один или несколько операторов-действия.
Функции вызываются из обычного оператора-действия.
ВНИМАНИЕ!
Левая скобка в списке параметров при определении и при обращении должна быть непосредственно за именем функции. (Для встроенных функций это может быть не так).
№36 слайд
Содержание слайда: Результат будет:
5
5
Это происходит потому, что вызов функции is(x) копирует значение в локальную переменную внутри самой функции.
Начальное значение равно 5 и оно не переопределяется значением 8.
Но если оператор поставить внутри функции, то будет напечатано и значение 8.
№37 слайд
Содержание слайда: Локальные переменные
Им не уделено особого внимания в awk. Поэтому они должны быть перечислены в списке параметров.
Список локальных переменных отделяется от параметров пробелом. Например:
function is(x A,B)
Здесь x - параметр подпрограммы, а A и B локальные переменные. Они существуют и имеют смысл до тех пор, пока функция is активна.
№44 слайд
Содержание слайда: Пример 1.
Вывести значения некоторых переменных окружения Web-сервера.
Файл ENV-sh1.cgi
#!/bin/bash/
# Указание для web-сервера, где находится
# shell-интерпретатор
echo “Content-type: text/html”
# Вывод заголовка о типе ответа
echo “”
# Вывод пустой строки – разделитель
# заголовков и тела ответа. Это очень
# важная строка.
№46 слайд
Содержание слайда: Пример 2.
Вывести значения всех переменных окружения, включая переменные Web-сервера.
Файл ENV-sh2.cgi
#!/bin/bash/
echo “Content-type: text/html”
echo “”
echo “<html><head><title>”
echo “CGI test on shell UNIX”
echo “</title></head><body>”
echo “<h1> CGI test on UNIX shell</h1>”
№48 слайд
Содержание слайда: Команда env:
выдает значения текущей рабочей среды окружения по одной переменной в каждой строке в формате Имя_переменной=Значение_переменной
модифицирует среду для выполнения команд, не влияя на текущее окружение.
В этом случае синтаксис команды env следующий:
env – Имя=Значение Команда
№49 слайд
Содержание слайда: Здесь:
опция “-“ ограничивает рабочую среду только теми переменными, что есть в списке формата Имя=Значение.
Без опции “-“ команда env добавляет этот список в рабочую среду.
Имя=Значение – список установок для выполняемой команды.
Команда – имя команды и ее аргументов для выполнения в указанной среде.
№51 слайд
Содержание слайда: Для метода GET наиболее важна переменная QUERY_STRING, содержащая в формате
Имя_1=Значение_1&Имя_2=Значение_2&….
содержимое заполненной формы, которое
добавляется к URL.
Для метода POST важны переменные:
- CONTENT_LENGTH - содержит число байтов в стандартном вводе;
- CONTENT_TYPE - содержит тип передаваемых данных от скрипта.
№52 слайд
Содержание слайда: Для распознавания метода передачи данных от формы применяется переменная окружения REQUEST_METHOD, которая содержит значение “GET” для метода GET и значение “POST” для метода POST.
При методе POST данные идут через стандартный ввод в формате, что и для метода GET.
В этом случае применяется команда read Var. При таком вызове в переменную Var попадает все, что идет до первого пробела в потоке стандартного ввода (STDIN).
№53 слайд
Содержание слайда: Но в силу того, что браузер передает информацию из формы в закодированном виде, где все пробелы заменяются символами “+”, то вся информация от формы будет проходить без всяких пробелов.
Если применена команда
read Var1, Var2, Var3, ….
то первое слово попадет в переменную Var1, второе – в Var2. Последней переменной достанется все, что останется в стандартном вводе (такой ввод для CGI не применяется).
№55 слайд
Содержание слайда: # Занесение в переменную Var1 данных от формы
if test $REQUEST_METHOD = ”GET” then Var1=$QUERY_STRING
elif test $REQUEST_METHOD = ”POST” then
read Var1
fi
echo “Var1 = “ $Var1 “<br>”
# Образуем конвейер из shell и awk:
echo $Var1| awk ‘BEGIN {FS=”&”}
# Задание разделителя данных формы
№56 слайд
Содержание слайда: for (i=1; i<= NF; i++) {Arr[$i]=$i; N++}
# Получение в массиве Arr пар Имя=значение
for (Name in Arr) {
print “Name = “ Name “Value = “ Arr[Name] “<br>”}
}’
Получение массива Arr можно выполнить и так:
echo $Var1| awk ‘{ split ($0,Arr,”&”);
for (n in Arr) {print Arr[n]”<br>”}
}’
Скачать все slide презентации Условная выборка строк одним архивом:
-
Строка, оборванная войной
-
Строковые операторы и функции
-
Программирование ветвящихся алгоритмов. Условный оператор
-
Условный театр в России
-
АКВАРЕЛИ И ПРОНИКНОВЕННЫЕ СТРОКИ М. ВОЛОШИНА Выполнила Рябизова В. С. г. Новосибирск МБОУСОШ 119
-
Ренессанс Эпоха Возрождения Выполнила обучающаяся 10 Б класса Строковой Натальи
-
Комбинаторные задачи Перестановки РазмещенияСочетания (выборки)
-
Условные знаки. Чтение топографического плана местности
-
Условные знаки
-
Условный оператор. Среда Исполнители