Программы
10 хороших примеров работы в Linux, FreeBSD и прочих Unix. Часть 10 — перестаньте пайпить в cat

10 хороших примеров работы в Linux, FreeBSD и прочих Unix. Часть 10 — перестаньте пайпить в cat

Частая ошибка при использовании утилиты grep - это перенаправление вывода утилиты cat в неё для последующего поиска по одному файлу

В завершающей части перевода статьи «Learn 10 good UNIX usage habits» от IBM мы рассмотрим больную для кого-то темы - cat всего подряд и последующая обработка.

10. Перестаньте всё пересылать в пайп, а ввод обрабатывать.

Не знаю, на сколько это действительно важная тема, но господа из IBM считают, что эта тема достойна завершения списка важных финтов для пользователей Unix-based операционных систем... Ну что же, продолжим переводить:

Частая ошибка при использовании утилиты grep - это перенаправление вывода утилиты cat в неё для последующего поиска по одному файлу. Это абсолютно излишне и тратит процессорное и ваше время, так как утилита grep и так принимает имя файла в качестве аргумента и ищет по нему. У вас нет необходимости делать сначала cat, а потом уже искать во входном потоке. Вы можете сразу искать в файле, как показано в примере ниже:

~ $ time cat tmp/a/longfile.txt | grep and
2811
 
real    0m0.015s
user    0m0.003s
sys     0m0.013s
~ $ time grep and tmp/a/longfile.txt
2811
 
real    0m0.010s
user    0m0.006s
sys     0m0.004s
~ $

Эта ошибка повторяется при использовании многих утилит. Да, многие утилиты принимают входные данные через stdin, однако не нужно использовать cat в случае простого поиска по одному файлу.

... не знаю, отчего им так захотелось именно это записать в "важные привычки unix-оида". Однако, на этом всё с переводом данной статьи. Продолжу модобные заметки под тегом bash100 - множетсов фактов и советов по командной строке.

Также может быть вам интересно:

Кто такие программисты? Нет, ну правда!

Кто же такие программисты, чем они занимаются, почему у программистов такие высокие ЗП?

Читать »

Перевод статьи «Learn 10 good UNIX usage habits» от IBM

В заметке перевод "10-ти хороших привычек Unix-пользователя"

Читать »
Фото Пример своей консольной команды в Django проекте

Пример своей консольной команды в Django проекте

Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.

Фото Как на Bash посчитать число строк в проекте (директории)

Как на Bash посчитать число строк в проекте (директории)

Ниже будет представлен однострочник, решающий данную задачу на Bash + пошаговое описание его работы.

Фото И снова sudo, и снова "решето"

И снова sudo, и снова "решето"

В утилите sudo была исправлена очередная уязвимость.

Фото О многозадачности и планировщике задач (шедулер)

О многозадачности и планировщике задач (шедулер)

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

Фото Как найти самые большие папки и файлы в Linux

Как найти самые большие папки и файлы в Linux

Когда кончается место на жестком диске, возникает закономерный вопрос: на что же оно было потрачено, какие файлы разрослись больше положенного?

Фото Команда grep – полезные ключи и примеры использования

Команда grep – полезные ключи и примеры использования

У команды "grep" довольно много различных особенностей. особенно, если учесть, что с английского это "решето" – а что может войти в решето , не факт что выйдет!

Фото Как создать неизменяемый файл в Linux / MacOS / FreeBSD

Как создать неизменяемый файл в Linux / MacOS / FreeBSD

Само собой, root может всё (если введёт пару команд), однако, это вполне легальный способ запретить изменение файла.

Фото Как удалить все Docker образы и контейнеры

Как удалить все Docker образы и контейнеры

Не всегда нужно удалять всё, но объяснение данного "рецепта" объяснит как в целом удалять образы и контейнеры.