Чтение онлайн

на главную - закладки

Жанры

Искусство программирования на языке сценариев командной оболочки

Купер Мендель

Шрифт:

# ----------------------------------> |

# Передает вывод в "sed" --------> |

# пусть это будет 0000000 1198195154\n

# sed начинает читать символы: 0000000 1198195154\n.

# Здесь он находит символ перевода строки,

# таким образом он получает строку (0000000 1198195154).

# Затем он просматривает <диапазон><действие>.

Первый и единственный -- это

# диапазон действие

# 1 s/.* //p

# Номер строки попадает в заданный лиапазон, так что теперь он приступает к выполнению действия:

# пытается заменить наибольшую подстроку, заканчивающуюся пробелом

# ("0000000 ") "ничем" (//), и если замена произведена -- выводит результат

# ("p" -- это флаг команды "s", а не команда "p", которая имеет иное значение).

# теперь sed готов продолжить чтение входного потока. (Обратите внимание:

# если опустить ключ -n, то sed выведет строку еще раз)

# Теперь sed дочитывает остаток строки.

# Он готов приступить к анализу 2-й строки (которая отмечена '$'

# как последняя).

# Поскольку строка не попадает в заданный <диапазон>, на этом обработка прекращается.

# Проще говоря, команда sed означает:

# "В первой строке удалить любые символы, вплоть до последнего встреченного пробела,

# и затем вывести остаток."

# Сделать это можно более простым способом:

# sed -e 's/.* //;q'

# Где, заданы два <диапазона><действия> (можно записать и по другому

# sed -e 's/.* //' -e q):

# диапазон действие

# ничего (для совпадающих строк) s/.* //

# ничего (для совпадающих строк) q (quit)

# Здесь sed считывает только первую строку.

# Выполняет оба действия, и выводит строку перед завершением

# (действие "q"), поскольку ключ "-n" опущен.

# =================================================================== #

# Простая альтернатива:

# head -c4 /dev/urandom| od -An -tu4

exit 0

См.

также Пример 12-30.

tail

Выводит последние строки из файла на stdout (по-умолчанию -- 10 строк). Обычно используется для мониторинга системных журналов. Ключ – f, позволяет вести непрерывное наблюдение за добавляемыми строками в файл.

Пример 12-11. Мониторинг системного журнала с помощью tail

#!/bin/bash

filename=sys.log

cat /dev/null > $filename; echo "Создание / очистка временного файла."

# Если файл отсутствует, то он создается,

#+ и очищается, если существует.

# : > filename и > filename дают тот же эффект.

tail /var/log/messages > $filename

# Файл /var/log/messages должен быть доступен для чтения.

echo "В файл $filename записаны последние строки из /var/log/messages."

exit 0

См. также Пример 12-4, Пример 12-30 и Пример 29-6.

grep

Многоцелевая поисковая утилита, использующая регулярные выражения. Изначально это была команда в древнем строчном редакторе ed, g/re/p, что означает -- global - regular expression - print.

grep pattern [file...]

Поиск участков текста в файле(ах), соответствующих шаблону pattern, где pattern может быть как обычной строкой, так и регулярным выражением.

bash$ grep '[rst]ystem.$' osinfo.txt

The GPL governs the distribution of the Linux operating system.

Если файл(ы) для поиска не задан, то команда grep работает как фильтр для устройства stdout, например в конвейере.

bash$ ps ax | grep clock

765 tty1 S 0:00 xclock

901 pts/1 S 0:00 grep clock

– i– - выполняется поиск без учета регистра символов.

– w– - поиск совпадений целого слова.

– l– - вывод только имен файлов, в которых найдены участки, совпадающие с заданным образцом/шаблоном, без вывода совпадающих строк.

Поделиться:
Популярные книги

Бастард Императора

Орлов Андрей Юрьевич
1. Бастард Императора
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Бастард Императора

На границе империй. Том 10. Часть 1

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 1

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Буря империи

Сай Ярослав
6. Медорфенов
Фантастика:
аниме
фэнтези
фантастика: прочее
эпическая фантастика
5.00
рейтинг книги
Буря империи

Пенсия для морского дьявола

Чиркунов Игорь
1. Первый в касте бездны
Фантастика:
попаданцы
5.29
рейтинг книги
Пенсия для морского дьявола

На изломе чувств

Юнина Наталья
Любовные романы:
современные любовные романы
6.83
рейтинг книги
На изломе чувств

Тринадцатый II

NikL
2. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый II

Сирота

Шмаков Алексей Семенович
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Сирота

Законы Рода. Том 9

Flow Ascold
9. Граф Берестьев
Фантастика:
городское фэнтези
попаданцы
аниме
дорама
фэнтези
фантастика: прочее
5.00
рейтинг книги
Законы Рода. Том 9

Красноармеец

Поселягин Владимир Геннадьевич
1. Красноармеец
Фантастика:
боевая фантастика
попаданцы
4.60
рейтинг книги
Красноармеец

Огненный князь 4

Машуков Тимур
4. Багряный восход
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 4

Начальник милиции. Книга 5

Дамиров Рафаэль
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции. Книга 5

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор