Учебники

8) Трубы, Grep и сортировка

В этом уроке мы узнаем

Что такое труба в Linux?

Труба — это команда в Linux, которая позволяет использовать две или более команд, так что вывод одной команды служит вводом для следующей. Короче говоря, вывод каждого процесса напрямую как ввод к следующему, как конвейер. Символ ‘|’ обозначает трубу.

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

Позвольте нам понять это на примере.

Когда вы используете команду «cat» для просмотра файла, который занимает несколько страниц, приглашение быстро переходит на последнюю страницу файла, и вы не видите его содержимое посередине.

Чтобы избежать этого, вы можете перенаправить вывод команды ‘cat’ на ‘less’, который покажет вам только одну длину прокрутки контента за раз.

cat filename | less 

Иллюстрация прояснит это.

Linux / Unix Pipes, Grep & Sort Command

Нажмите здесь, если видео не доступно

команды ‘pg’ и ‘more’

Вместо «меньше», вы также можете использовать.

cat Filename | pg 

или

cat Filename | more

И вы можете просмотреть файл в удобочитаемом виде и прокрутить вниз, просто нажав клавишу ввода.

Linux / Unix Pipes, Grep & Sort Command

Команда «grep»

Предположим, вы хотите найти определенную информацию по почтовому индексу из текстового файла.

Вы можете вручную просматривать содержимое, чтобы отслеживать информацию. Лучшим вариантом является использование команды grep. Он отсканирует документ на наличие необходимой информации и представит результат в нужном формате.

Синтаксис:

grep search_string

Давайте посмотрим на это в действии —

Linux / Unix Pipes, Grep & Sort Command

Здесь команда grep провела поиск файла «sample» на наличие строк «Apple» и «Eat».

Следующие параметры могут быть использованы с этой командой.

вариант функция
-v Показывает все строки, которые не соответствуют искомой строке
Отображает только количество совпадающих строк
-n Показывает совпадающую строку и ее номер
Соответствовать как (верхний, так и нижний)
-l Показывает только имя файла со строкой

Давайте попробуем первый вариант ‘-i’ в том же файле, который использовался выше —

Используя опцию ‘i’, grep отфильтровал строку ‘a’ (без учета регистра) из всех строк.

Linux / Unix Pipes, Grep & Sort Command

Команда сортировки

Эта команда помогает отсортировать содержимое файла в алфавитном порядке.

Синтаксис этой команды:

sort Filename

Рассмотрим содержимое файла.

Linux / Unix Pipes, Grep & Sort Command

Использование команды сортировки

Linux / Unix Pipes, Grep & Sort Command

У этой команды также есть расширения , и они перечислены ниже.

вариант

функция

Обратная сортировка

-n

Сортирует по численности

-f

Сортировка без учета регистра 

В приведенном ниже примере показана обратная сортировка содержимого в файле «abc».

Linux / Unix Pipes, Grep & Sort Command

Что такое фильтр?

В Linux много команд фильтрации, таких как awk, grep, sed, spell и wc. Фильтр принимает входные данные от одной команды, выполняет некоторую обработку и выдает выходные данные.

При передаче двух команд «отфильтрованный» вывод первой команды передается следующей.

Linux / Unix Pipes, Grep & Sort Command

Давайте разберемся с этим на примере.

У нас есть следующий файл «образец»

Linux / Unix Pipes, Grep & Sort Command

Мы хотим выделить только те строки, которые не содержат символ «а», но результат должен быть в обратном порядке.

Для этого можно использовать следующий синтаксис.

cat sample | grep -v a | sort - r

Давайте посмотрим на результат.

Linux / Unix Pipes, Grep & Sort Command

Резюме:

  • Трубы ‘|’ отправить вывод одной команды как ввод другой команды.
  • Фильтр принимает входные данные от одной команды, выполняет некоторую обработку и выдает выходные данные.
  • Команда grep может использоваться для поиска строк и значений в текстовом документе.
  • Пропускание через grep должно быть одним из наиболее распространенных применений
  • Команда sort сортирует содержимое файла в алфавитном порядке
  • less, команды pg и more используются для разделения длинного файла на читаемые биты