Глава 5. Утилиты Командной Строки

Цель этой главы состоит в том, чтобы представить несколько инструментальных средств командной строки, которые могут оказаться полезными для каждодневного использования. Конечно, вы можете пропустить эту главу, если вы намереваетесь использовать только графическую среду, но все же лучше просмотрите - возможно вы кардинально измените свое мнение.

Эта глава не имеет четкой организации. Утилиты представлены в порядке от наиболее часто используемых к реже используемым и менее ясным. Каждая из команд иллюстрирована примером, но эта глава в основном является упражнением для более полного понимания назначения функций и способов их использования.

grep: Поиск Строк в Файлах

Да, имя команды не очень интуитивно, это аббревиатура от “General Regular Expression Parser”((“общий синтаксический анализатор регулярных выражений”). Использование этой команды просто: поиск образца, заданного как параметр в одном или более файлах. Ее синтаксис:

grep [опции] <Образец> [один или более файл(ов)]

Если упомянуто несколько файлов, то их названия будут предшествовать каждой строке соответствия, отображенной в результате. Чтобы предотвратить вывод этих имен, используйте опцию -h, также, для получения только имен файлов используйте опцию -l . Образец - это регулярное выражение, хотя в большинстве случаев это просто слово. Наиболее часто используемые опции:

  • -i: делает поиск независимым от регистра (то есть игнорируются различия между маленькими и большими буквами);

  • -v: инвертирует поиск: показывает строки, которые не содержат образца;

  • -n: выводит номера найденных строк;

  • -w: заставляет grep воспринимать образец как целое слово.

Вот примеры использования:

$ cat my_father
Hello dad
Hi daddy
So long dad

# Найти строки, содержащие "hi", не обращая внимание на регистр
$ grep -i hi my_father
Hi daddy

# Найти "dad" как целое слово и вывести номер строки перед найденным результатом
$ grep -nw dad my_father
1:Hello dad
3:So long dad

# Найти все строки, которые НЕ начинаются на "H"
$ grep -v "^H" my_father
So long dad
$

Если вы желаете использовать grep в канале, вы не должны указывать имя файла, в этом случае данные берутся из стандартного ввода. Результат выводится в стандартный вывод, поэтому вы можете смело передавать выход grep другим программам. Например:

$ cat /usr/share/doc/HOWTO/Parallel-Processing-HOWTO | \
  grep -n thread | less


Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости