По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
SQL расшифровывается как Structured Query Language, или структурированный язык запросов. Команды SQL – это инструкции, которые даются базе данных для выполнения задач, функций и запросов с данными. SQL-командами можно пользоваться для поиска по базе данных и выполнения различных функций: создания и удаления таблиц, добавления данных в таблицы и их редактирования. Ниже приведен список основных команд (их иногда называют операторами), которые необходимо знать при работе с SQL. SELECT и FROM SELECT в запросе определяет, какие столбцы данных отобразить в результатах. Кроме того, в SQL есть возможности отображать данные не из столбца таблицы. В примере ниже показаны 3 столбца, взятые из таблицы студентов Student (через SELECT и FROM) и один вычисляемый столбец. В базе данных хранятся ID (studentID), имя (FirstName) и фамилия (LastName) студента. Мы можем объединить столбцы с именем и фамилией и создать вычисляемое поле с полным именем (FullName). SELECT studentID, FirstName, LastName, FirstName + ' ' + LastName AS FullName FROM student; Вывод: +-----------+-------------------+------------+------------------------+ | studentID | FirstName | LastName | FullName | +-----------+-------------------+------------+------------------------+ | 1 | Monique | Davis | Monique Davis | | 2 | Teri | Gutierrez | Teri Gutierrez | | 3 | Spencer | Pautier | Spencer Pautier | | 4 | Louis | Ramsey | Louis Ramsey | | 5 | Alvin | Greene | Alvin Greene | | 6 | Sophie | Freeman | Sophie Freeman | | 7 | Edgar Frank "Ted" | Codd | Edgar Frank "Ted" Codd | | 8 | Donald D. | Chamberlin | Donald D. Chamberlin | | 9 | Raymond F. | Boyce | Raymond F. Boyce | +-----------+-------------------+------------+------------------------+ 9 rows in set (0.00 sec) CREATE TABLE Название CREATE TABLE говорит само за себя – оператор создает таблицу. Вы можете задать название таблицы и настроить, какие столбцы будут присутствовать в таблице. CREATE TABLE table_name ( column_1 datatype, column_2 datatype, column_3 datatype ); ALTER TABLE ALTER TABLE изменяет структуру таблицы. Вот так можно добавить столбец в базу данных: ALTER TABLE table_name ADD column_name datatype; CHECK CHECK ограничивает диапазон значений, которые можно добавить в столбец. Когда вы настраиваете ограничение CHECK для отдельного столбца, оператор проверяет, что в этом столбце присутствуют строго определенные значения. Если же CHECK настраивается для таблицы, то он может ограничивать значения в отдельных столбцах на основании значений из других столбцов этой строки. В следующем примере при создании таблицы Persons используется ограничение CHECK для столбца «Возраст» (Age). Таким образом проверяется, что в таблицу не попадают лица младше 18 лет. CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CHECK (Age>=18) ); Следующий синтаксис используется для присвоения названия оператору CHECK и настройки CHECK для нескольких столбцов: CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, City varchar(255), CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes') ); WHERE (AND, OR, IN, BETWEEN и LIKE) Оператор WHERE используется для ограничения количества возвращаемых строк. Сначала, в качестве примере, мы покажем оператор SELECT и его результат без оператора WHERE. Затем добавим оператор WHERE, в котором используются сразу 5 из вышеуказанных квалификаторов. SELECT studentID, FullName, sat_score, rcd_updated FROM student; +-----------+------------------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+------------------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 | | 3 | Spencer Pautier | 1000 | 2017-08-16 15:34:50 | | 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | | 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 | | 7 | Edgar Frank "Ted" Codd | 2400 | 2017-08-16 15:35:33 | | 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 | | 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 | +-----------+------------------------+-----------+---------------------+ 9 rows in set (0.00 sec) Теперь повторим запрос SELECT, но ограничим возвращаемые строки оператором WHERE. STUDENT studentID, FullName, sat_score, recordUpdated FROM student WHERE (studentID BETWEEN 1 AND 5 OR studentID = 8) AND sat_score NOT IN (1000, 1400); +-----------+----------------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+----------------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 | | 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | | 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 | +-----------+----------------------+-----------+---------------------+ 5 rows in set (0.00 sec) UPDATE Для обновления записи в таблице используется оператор UPDATE. Условием WHERE можно уточнить, какие именно записи вы бы хотели обновить. Вы можете обновлять по одному или нескольким столбцам сразу. Синтаксис выглядит так: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; В примере ниже обновляется название записи (поле Name) с Id 4: UPDATE Person SET Name = “Elton John” WHERE Id = 4; Помимо этого, можно обновлять столбцы в таблице значениями из других таблиц. Чтобы получить данные из нескольких таблиц, воспользуйтесь оператором JOIN. Синтаксис выглядит так: UPDATE table_name1 SET table_name1.column1 = table_name2.columnA table_name1.column2 = table_name2.columnB FROM table_name1 JOIN table_name2 ON table_name1.ForeignKey = table_name2.Key В примере ниже мы обновляем поле «Менеджер» (Manager) для всех записей: UPDATE Person SET Person.Manager = Department.Manager FROM Person JOIN Department ON Person.DepartmentID = Department.ID GROUP BY GROUP BY позволяет объединять строки и агрегировать данные. Вот так выглядит синтаксис GROUP BY: SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name; HAVING HAVING позволяет сортировать данные, которые собираются через GROUP BY. Таким образом, пользователю показывается лишь ограниченный набор записей. Вот так выглядит синтаксис HAVING: SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > value; AVG() AVG, или среднее, вычисляет среднее значение числового столбца из набора строк, которые возвращает оператор SQL. Вот так выглядит синтаксис: SELECT groupingField, AVG(num_field) FROM table1 GROUP BY groupingField А вот пример этого оператора для таблицы Student: SELECT studentID, FullName, AVG(sat_score) FROM student GROUP BY studentID, FullName; AS AS позволяет переименовать столбец или таблицу с помощью псевдонима. SELECT user_only_num1 AS AgeOfServer, (user_only_num1 - warranty_period) AS NonWarrantyPeriod FROM server_table И вот так будет выглядеть результат. +-------------+------------------------+ | AgeOfServer | NonWarrantyPeriod | +-------------+------------------------+ | 36 | 24 | | 24 | 12 | | 61 | 49 | | 12 | 0 | | 6 | -6 | | 0 | -12 | | 36 | 24 | | 36 | 24 | | 24 | 12 | +-------------+------------------------+ Кроме того, через оператор AS вы можете задать название таблицы – так будет проще обращаться к ней в JOIN. SELECT ord.product, ord.ord_number, ord.price, cust.cust_name, cust.cust_number FROM customer_table AS cust JOIN order_table AS ord ON cust.cust_number = ord.cust_number Результат выглядит так. +-------------+------------+-----------+-----------------+--------------+ | product | ord_number | price | cust_name | cust_number | +-------------+------------+-----------+-----------------+--------------+ | RAM | 12345 | 124 | John Smith | 20 | | CPU | 12346 | 212 | Mia X | 22 | | USB | 12347 | 49 | Elise Beth | 21 | | Cable | 12348 | 0 | Paul Fort | 19 | | Mouse | 12349 | 66 | Nats Back | 15 | | Laptop | 12350 | 612 | Mel S | 36 | | Keyboard| 12351 | 24 | George Z | 95 | | Keyboard| 12352 | 24 | Ally B | 55 | | Air | 12353 | 12 | Maria Trust | 11 | +-------------+------------+-----------+-----------------+--------------+ ORDER BY ORDER BY позволяет сортировать результирующий набор данных по одному или нескольким элементам в разделе SELECT. Ниже дан пример сортировки студентов по имени (FullName) в порядке убывания. Изначально используется стандартная сортировка по возрастанию (ASC), поэтому для сортировки в обратном порядке мы применяем DESC. SELECT studentID, FullName, sat_score FROM student ORDER BY FullName DESC; COUNT COUNT вычисляет количество строк и возвращает результирующее значение в столбце. Ниже приводятся возможные сценарии использования COUNT: Подсчет всех строк в таблице (не требуется Group by) Подсчет общего числа подмножеств данных (в операторе обязательно прописывается Group By) Этот оператор SQL выводит количество всех строк. Кроме того, что вы можете настроить название результирующего столбца COUNT с помощью AS. SELECT count(*) AS studentCount FROM student; DELETE DELETE используется для удаления записи из таблицы. Будьте внимательны! Вы можете удалить несколько записей в таблице, либо сразу все. С помощью условия WHERE вы указываете, какие записи необходимо удалить. Синтаксис выглядит так: DELETE FROM table_name WHERE condition; Вот так выглядит удаление из таблицы Person записи с Id 3: DELETE FROM Person WHERE Id = 3; INNER JOIN JOIN, или внутреннее соединение, выбирает записи, соответствующие значениям в двух таблицах. SELECT * FROM A x JOIN B y ON y.aId = x.Id LEFT JOIN LEFT JOIN возвращает все строки из левой таблицы и соответствующие им строки из правой таблицы. Строки из левой таблицы возвращаются даже при пустых значениях в правой таблице. Если для строк из левой таблицы нет соответствия в правой, то в значениях последней будет стоять null. SELECT * FROM A x LEFT JOIN B y ON y.aId = x.Id RIGHT JOIN RIGHT JOIN возвращает все строки из правой таблицы и соответствующие им строки из левой. В отличие от левого соединения, здесь возвращаются все строки из правой таблицы, даже если им ничего не соответствует в левой. В таком случае, в значениях столбцов из левой таблицы будет стоять null. SELECT * FROM A x RIGHT JOIN B y ON y.aId = x.Id FULL OUTER JOIN FULL OUTER JOIN возвращает все строки, соответствующие условиям в любой из таблиц. Если в левой таблице есть строки, которым ничего не соответствует в правой, то они все равно отобразятся в результирующих значениях. То же самое распространяется и на строки из правой таблицы без соответствующих значений в левой. SELECT Customers.CustomerName, Orders.OrderID FROM Customers FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID ORDER BY Customers.CustomerName INSERT INSERT используется для добавления данных в таблицу. INSERT INTO table_name (column_1, column_2, column_3) VALUES (value_1, 'value_2', value_3); LIKE LIKE используется в связке с WHERE или HAVING (в составе оператора GROUP BY) и ограничивает выбранные строки по элементам, если в столбце содержится определенный шаблон символов. Этот SQL запрос выбирает студентов, чье значение в FullName начинается с «Monique» или заканчивается с «Greene». SELECT studentID, FullName, sat_score, rcd_updated FROM student WHERE FullName LIKE 'Monique%' OR FullName LIKE '%Greene'; +-----------+---------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+---------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | +-----------+---------------+-----------+---------------------+ 2 rows in set (0.00 sec) Перед LIKE вы можете добавить NOT, и тогда строки, соответствующие условию, будут исключаться, а не добавляться. Этот SQL исключает записи, у которых в столбце FULL NAME содержится «cer Pau» и «Ted». SELECT studentID, FullName, sat_score, rcd_updated FROM student WHERE FullName NOT LIKE '%cer Pau%' AND FullName NOT LIKE '%"Ted"%'; +-----------+----------------------+-----------+---------------------+ | studentID | FullName | sat_score | rcd_updated | +-----------+----------------------+-----------+---------------------+ | 1 | Monique Davis | 400 | 2017-08-16 15:34:50 | | 2 | Teri Gutierrez | 800 | 2017-08-16 15:34:50 | | 4 | Louis Ramsey | 1200 | 2017-08-16 15:34:50 | | 5 | Alvin Greene | 1200 | 2017-08-16 15:34:50 | | 6 | Sophie Freeman | 1200 | 2017-08-16 15:34:50 | | 8 | Donald D. Chamberlin | 2400 | 2017-08-16 15:35:33 | | 9 | Raymond F. Boyce | 2400 | 2017-08-16 15:35:33 | +-----------+----------------------+-----------+---------------------+ 7 rows in set (0.00 sec)
img
Итак, вы хотите стать администратором Windows Desktop? Однако прежде чем вы сможете это сделать, вам необходимо знать несколько ключевых навыков. В этой подробной статье мы расскажем о каждом из этих навыков и о том, как вы можете ими овладеть. 1. Развертывание и обновление Windows Самая фундаментальная задача администратора Windows - это развертывание операционных систем. Это означает установку текущей версии Windows на устройства организации. Традиционно для этого требовалась установка Windows с использованием существующего образа. Поскольку это требует так много времени и усилий со стороны администраторов настольных компьютеров, сегодня большинство организаций используют более автоматизированный подход. Есть несколько способов сделать это, и вы должны понимать их все, потому что не все организации развертывают Windows одинаково. Динамический подход к развертыванию позволяет развертывать Windows быстрее, чем традиционный подход, с помощью различных методов, в то время как современный подход к развертыванию продвигает эту концепцию еще на один шаг - позволяя пользователям самостоятельно развертывать ОС с помощью Windows Autopilot и обновления на месте. В организациях, которые решили не внедрять автопилот для своих пользователей, существуют следующие динамические подходы: Активация подписки. Некоторые версии Windows позволяют легко установить обновленную версию Windows с помощью простого процесса активации без необходимости вводить ключи или выполнять перезагрузку. Но у этого метода есть ограниченные варианты использования. Присоединиться к Azure Active Directory (AAD). В организациях, которые внедрили AAD, пользователь может настроить свое новое устройство Windows с помощью AAD, просто введя свой идентификатор и пароль. Пакеты подготовки. Вы можете развернуть Windows с помощью автономного пакета, созданного конструктором образов и конфигураций Windows (ICD - Windows Imaging and Configuration Designer). Этот процесс занимает меньше времени, чем традиционный подход к развертыванию, но занимает больше времени, чем другие методы. Администратор Windows должен не только понимать, как реализовать эти подходы, но и как настраивать, развертывать и управлять обновлениями ОС, а также как управлять аутентификацией устройств. 2. Управление и защита устройств Сегодня безопасность является насущной проблемой для каждой организации, поскольку одно-единственное нарушение данных может серьезно повредить даже крупнейшую из компаний. По этой причине одной из самых важных задач администратора рабочего стола Windows является безопасное управление устройствами организации и их защита. Администраторы настольных компьютеров должны научиться использовать два основных инструмента Windows для управления устройствами и их защиты: InTune и Defender. Microsoft Intune Этот облачный инструмент позволяет вам управлять настройками, функциями и безопасностью всех устройств, которые используются в организации, включая собственные устройства (BYOD) и те, которые используют ОС, отличные от Windows. Вы должны не только знать, как регистрировать устройства в Intune, но и как настраивать параметры приложения и создавать отчеты инвентаризации. Windows Defender Как пользователь Windows, вы можете думать об этой программе как о еще одном антивирусном приложении. Но в нем есть много функций безопасности корпоративного уровня, которые вам также необходимо освоить. Это включает в себя: Application Guard: Помогает организациям изолировать сайты, которые они сочли ненадежными. Credential Guard: Предотвращает кражу злоумышленниками учетных данных, которые могут быть использованы для атак. Exploit Guard: Добавляет Defender возможность защиты от вторжений. Advanced Threat Protection: Помогает организациям предотвращать, обнаруживать, исследовать сложные угрозы и реагировать на них. Application Control: Позволяет организациям контролировать, какие драйверы и приложения могут запускать устройства Windows. Наконец, как администратор рабочего стола вы должны знать, как эффективно контролировать безопасность и состояние устройства с помощью различных распространенных аналитических инструментов. 3. Управление приложениями и данными Подобно тому, как администратор Windows должен развертывать Windows и управлять этими развертываниями, администратор также должен развертывать приложения - и управлять ими и их данными. Пользователи зависят от своих приложений при выполнении своей работы, и вы должны убедиться, что они могут получить к ним надлежащий доступ. Как администратор, вы должны знать различные средства развертывания, обновления и управления приложениями в современной организации. В зависимости от политик и требований вашей организации вы сможете сделать это через Intune, Microsoft Store для бизнеса или Office 365 ProPlus. Вы также должны знать, как назначать приложения в группу и как подготовить приложение с помощью сайдлодинга, который представляет собой передачу мультимедиа с использованием таких методов, как USB, Bluetooth, Wi-Fi или карты памяти. Поскольку мобильные устройства становятся все более важным компонентом ИТ-инфраструктуры предприятия, вы также должны управлять приложениями, которые работают на этих устройствах, и их данными. Это делается с помощью так называемого управления мобильными приложениями (MAM - mobile application management). Это влечет за собой планирование, реализацию и управление политиками MAM, а также реализацию и настройку различных схем защиты информации. 4. Настройка сетевого подключения. Это очень важная область. Без подключения пользователи просто не могут выполнять свою работу. Таким образом, ничто не расстраивает их больше, чем отсутствие связи. Когда вы станете администратором, вы должны обладать значительным опытом настройки всех аспектов сетевого подключения. Это может повлечь за собой настройку IP-настроек устройств и настроек мобильной сети (включая профили Wi-Fi), а также настройку любого клиента виртуальной частной сети (VPN), поддерживаемого организацией. Что еще более важно, вы должны обладать навыками как для устранения распространенных проблем с подключением, с которыми сталкиваются пользователи, так и для способности их своевременно решать. Кроме того, поскольку так много сотрудников работают удаленно, дома или вне офиса, также важно иметь навыки настройки удаленного подключения. Это может включать настройку доступа к удаленному рабочему столу и инструментов удаленного управления, таких как: Remote Desktop: Удаленный рабочий стол - это программное обеспечение, которое позволяет пользователю на одном компьютере получать доступ к другому компьютеру, как если бы он находился перед ним. Remote Management: Это инструмент Windows, который удаленно управляет оборудованием устройства, позволяя диагностировать и устранять проблемы. PowerShell Remoting: PowerShell - это инструмент для создания сценариев администратора Windows, а удаленное взаимодействие PowerShell - это запуск сценария на удаленном компьютере. 5. Управление политиками и профилями Чтобы организация и ее устройства работали бесперебойно и последовательно, администратор рабочего стола Windows должен иметь возможность управлять широким спектром политик и профилей пользователей и устройств. В сегодняшнем мире, который все больше ориентируется на облачные технологии, для этого необходимо использовать комбинацию локальных инструментов, таких как Configuration Manager и Group Policy, и облачных инструментов, таких как AAD и Intune, и вы должны освоить эти инструменты: Configuration Manager: Инструмент Configuration Manager позволяет, среди прочего, настраивать политики и профили устройств Windows. Group Policy: Инструмент групповой политики обеспечивает централизованную настройку политик и профилей в среде Active Directory. Azure Active Directory (AAD): Администраторы десктопов должны иметь возможность рекомендовать, планировать и внедрять политики совместного управления, которые объединяют эти инструменты. Кроме того, у вас должна быть возможность переносить политики в политики управления мобильными устройствами (MDM). Также важны навыки планирования, внедрения и управления политиками условного доступа и соответствия устройств. Как администратор вы можете дополнительно нести ответственность за планирование, внедрение и управление профилями устройств, и вам, возможно, придется настроить профили пользователей, параметры синхронизации и перенаправление папок. Заключение Потребуется время, чтобы накопить знания, необходимые для успешного администратора Windows. Однако при правильном обучении, ресурсах и подходе к обучению вы можете развить необходимый набор навыков. Как только вы это сделаете, у вас будет возможность расширить не только свою карьеру, но и свой опыт в сфере ИТ.
img
Интересным вопросом в Linux системах, является управление регулярными выражениями. Это полезный и необходимый навык не только профессионалам своего дела, системным администраторам, но, а также и обычным пользователям линуксоподобных операционных систем. В данной статье я постараюсь раскрыть, как создавать регулярные выражения и как их применять на практике в каких-либо целях. Основной областью применение регулярных выражений является поиск информации и файлов в линуксоподобных операционных системах. Для работы в основном используются следующие символы: " ext" - слова начинающиеся с text "text/" - слова, заканчивающиеся на text "^" - начало строки "$" - конец строки "a-z" - диапазон от a до z "[^t]" - не буква t "[" - воспринять символ [ буквально "." - любой символ "a|z" - а или z Регулярные выражения в основном используются со следующими командами: grep - утилита поиска по выражению egrep - расширенный grep fgrep - быстрый grep rgrep - рекурсивный grep sed - потоковый текстовый редактор. А особенно с утилитой grep. Данная утилита используется для сортировки результатов чего либо, передавая ей результаты по конвейеру. Эта утилита осуществляет поиск и передачу на стандартный вывод результат его. ЕЕ можно запускать с различными ключами, но можно использовать ее другие варианты, которые представлены выше. И есть еще потоковый текстовый редактор. Это не полноценный текстовый редактор, он просто получает информацию построчно и обрабатывает. После чего выводит на стандартный вывод. Он не изменяет текстовый вывод или текстовый поток, он просто редактирует перед тем как вывести его для нас на экран. Начнем со следующего. Создадим один пустой файл file1.txt, через команду touch. Создадим в текстовом редакторе в той же директории файл file.txt. Как мы видим в файле file.txt просто набор слов. Далее мы с помощью данных слов посмотрим, как работают команды. Первая команда - grep man grep Получаем справку по данной команде. Как можно понять из справки команда grep и ее производные - это печать линий совпадающих шаблонов. Проще говоря, команда grep помогает сортировать те данные, что мы даем команде, через знак конвейера на ввод. Причем в мануале мы можем видеть egrep, fgrep и т.д. данные команды мы можем не использовать. Использовать можно только grep с ключами различными, т.е. ключи просто заменяют эти команды. Можно на примере посмотреть, как работает данная команда. Например, grep oo file.txt На картинке видно, что команда из указанного файла выбрала по определенному шаблону "oo". Причем даже делает красным цветом подсветку. Можно добавить еще ключик -n, тогда данная команда еще и выведет номер строки в которой находится то, что ищется по шаблону. Это полезно, когда работаем с каким-нибудь кодом или сценарием. Когда необходимо, что-то найти. Сразу видим, где находится объект поиска или что-то ищем по логам. При использовании шаблона очень важно понимать, что команда grep, чувствительна к регистрам в шаблонах. Это означает, что Boo и boo это разные шаблоны. В одном случае команда найдет слово, а в другом нет. Можно команде сказать, чтобы она не учитывала регистр. Это делается с помощью ключа -i. Посмотрим содержимое нашего каталога командой ls, а затем отфильтруем только то, что заканчивается на "ile". Получается следующее, когда мы даем на ввод команде grep шаблон и где искать, он работает с файлом, а когда мы даем команду ls она выводи содержимое каталога и мы это содержимое передаем по конвейеру на команду grep с заданным шаблоном. Соответственно grep фильтрует переданное содержимое согласно шаблона и выводит на экран. Получается, что команде grep дали, то команда и обработала. Наглядно можно посмотреть на рисунке выше. Мы просматриваем командой cat содержимое файла и подаем на ввод команде grep с фильтрацией по шаблону. Давайте найдем файлы в которых содержится сочетание "ple". grep ple file.txt в данном случае команда нашла оба слова содержащие шаблон. Давайте найдем слово, которое будет начинаться с "ple". Команда будет выглядеть следующим образом: grep ^ple file.txt. Значок "^" указывает на начало строки. Противоположная задача найти слова, заканчивающиеся на "ple". Команда будет выглядеть следующим образом grep ple$ file.txt. Т.е. применять к концу строки, говорит значок "$" в шаблоне. Можно дать команду grep .o file.txt. В данном выражении знак "." , заменяет любую букву. Как вы видите вывод шаблона ".ple" вывел только одно слово т.к только слово couple удовлетворяло шаблону , т.к перед "ple" должен был содержаться еще один символ любой. Попробуем рассмотреть другую команду egrep. egrep (Extended grep) man egrep - отошлет к справке по grep. Данная команда позволяет использовать более расширенный набор шаблонов. Рассмотрим следующий пример команды: egrep '^(b|d)' file.txt Шаблон заключается в одинарные кавычки, для того чтобы экранировать символы, и команда egrep поняла, что это относится к ней и воспринимала выражение как шаблон. Сам же шаблон означает, что поиск будет искать слова, в начале строки (знак ^) содержащие букву b или d. Мы видим, что команда вернула слова, начинающиеся с буквы b или d. Рассмотрим другой вариант использования команды egrep. Например: egrep '^[a-k]' file.txt Получим все слова, начинающиеся с "a" по "к". Знак "[]" - диапазона. Как мы видим слова, начинающиеся с большой буквы, не попали. Все эти регулярные выражения очень пригодятся, когда мы что-то ищем в файлах логах. Усложним еще шаблон. Возьмем следующий: egrep '^[a-k]|[A-K]' file.txt Усложняя выражение, мы добавили диапазон заглавных букв сказав команде grep искать диапазон маленьких или диапазон больших букв с начала строки. Вот теперь все хорошо. Слова с Заглавными буквами тоже отобразились. Как вариант egrep можно запускать просто grep с ключиком -e. Про fgrep man fgrep - отошлет к справке по grep. Команда fgrep не понимает регулярных выражений вообще. Получается следующим образом если мы вводим: egrep c$ file.txt. То команда согласно шаблону, ищет в файле букву "c" в конце слова. В случае же с командой fgrep c$ file.txt, команда будет искать именно сочетание "с$". Т.е. команда fgrep воспринимает символы регулярных выражений, как обычные символы, которые ей нужно найти, как аргументы. Рекурсивный rgrep Создадим каталог mkdir folder . Создадим файл great.txt в созданной директории folder со словом Hello при помощью команды echo "Hello" folder/great.txt И если мы скажем grep Hello * , поищи слово Hello в текущей директории. Получится следующая картина. Как мы видим grep не может искать в папках. Для таких случаев и используется утилита rgrep. rgrep Hello * Дает следующую картину. Совершенно спокойно в папке найдено было, то что подходило под шаблон. Данная утилита пробежалась по всем папкам и файлам в них и нашла подходящее под шаблон слово. Т.е. если нам необходимо провести поиск по всем файлам и папкам, то необходимо использовать утилиту rgrep. Команда sed man sed - стрим редактор. Т.е потоковый редактор для фильтрации и редактирования потока данных. Например, sed -e ‘s/oo/aa’ file.txt - открыть редактор sed и заменить вывод всех oo на aa в файле file.txt. Нужно понимать, что в результате данной команды изменения в файле не произойдут. Просто данные из файла будут взяты и с изменениями выведены на стандартный вывод, т.е. экран. Для сохранения результатов мы можем сказать, чтобы вывел в новый файл указав направление вывода. sed -e ‘s/oo/aa’ file.txt newfile.txt В данном редакторе мы можем ему сказать использовать регулярные выражения, для этого необходимо добавить ключ -r. У данного редактора очень большой функционал.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59