Работа с файлами в Linux/ Unix. Использование утилиты cat с примерами
cat (сокращение от анг. слова catenate, что значит связывать) еще одна из часто используемых утилит в Linux и Unix системах.
Команда несет в себе три основные задачи, которые связанные с манипулированием текстовыми файлами: их создание, отображение и объединение. По сути, основная цель утилиты cat очень проста - она читает данные из файла или стандартного ввода и выводит их последовательно на экран терминала. Но при использовании ее ключей и специальных операторов перенаправления вывода, можно с этой утилитой сделать очень многое.
С помощью утилиты cat можно выполнять несколько действий, и это:
- выводить для просмотра содержимое файла или файлов в командную строку;
- создание и наполнение данными файлов (удобно для небольших файлов);
- копирование данных с одного файла второй;
- объединение наполнения разных файлов воедино.
В этой статье мы детально рассмотрим и опишем задачи утилиты и как использовать команду cat на практических примерах.
Просмотр наполнения файлов. Просто вводим после самой утилиты cat название конкретного файла для отображения его наполнения в консоли.
Аналогично можно посмотреть для нескольких файлов. Содержание каких будет выводиться на экран поочередно. Если текст слишком длинный для вывода лучше использовать утилиты less и more.
Также благодаря использованию функции перенаправления стандартного ввода/вывода предоставляется возможность использовать утилиту в качестве текстового редактора, для создания и наполнение небольших файлов. Чтобы осуществить перенаправление вывода используется символ >. Поместив символ > после команды cat, вы перенаправите вывод в файл, который будет указан после символа перенаправления.
Например, наполним содержимым файл file1.txt, далее жмем на кнопку Enter и вводим необходимый текст. Если файл file1.txt не существует, он будет автоматически создан системой и записан введенным текстом с консоли.
Дополнительно можно с этой утилитой добавлять текст в определенное место в документе, а именно в конец файла.
Например, добавим введенную в терминале строку в конец файла file1.txt при помощи оператора перенаправления >>. Для этого нужно после символа >> указать название файла к которому в конце желаете дописать текст.
Как видим по скриншоте к содержимому файла file1.txt добавилась в конце строчка “one 11 one”.
Для копирования (перенаправления) содержимого файла test1.txt в другой newfile.txt применяем уже знакомый нам символ перенаправления >. Если файл newfile.txt не существует, он будет создан системой. Если файл newfile.txt уже существует, то будет перезаписан с потерей предыдуще содержимого, на это нужно всегда обращать внимание. В большинстве случаев, копирование данных проводят используя специальную утилиту cp (о ней можно почитать в нашей статье здесь).
Аналогично проводятся работы с оператором >>. Прочтет содержимое файла test1.txt и запишет его в конец файла newfile.txt. Если этот файл не существует, он будет создан, и содержимое test1.txt будет записано в новый файл.
Это работает также для нескольких файлов. Пример, следующей командой выполняется последовательная запись содержимого файлов test1.txt и test1.txt в конец файла newfile.txt
Утилита имеет свои опции, которые предназначены для настройки ввода/вывода информации. Среди них можно выделить следующие ключи:
-b - нумерует непустые строки (строки в которых есть текст).
-n - нумерует все строки (даже те в которых нет текста).
-s - удаляет повторяющиеся пустые строки (если идет подряд несколько пустых строк, они удаляются и содержимое выводятся на экран только с 1 пустой строкой между текстом).
Также cat можно использовать в связке с другими утилитами для сортировки и удобного вывода на экран только необходимой информации. Например, с grep, tail, head.
Используем grep для поиска по файле строк с конкретным слово. Например, нужно вывести все строки с словом info. Сразу для удобства используем ключ -n для отображения номеров строк, в которых есть это слово.
Здесь: orders2.txt - файл в котором нужно выполнить поиск и info - слово, которое нужно найти в этом файле.
И утилиты tail, head применяется для вывода нужного количества строк файла сначала или с конца документа. Если взять tail - эта утилита будет выводить строки с конца документа, а head сначала.
Задать количество строк для вывода можно просто используя после самой утилиты ключ -n. Например, выведем последние 3 строки файла orders2.txt
Или же первые 2 строки через head .
Аналогично можно их комбинировать, отделяя условия символом |. Например, выведем 3 последние строки файла, но в которых есть слово info.
Утилита cat является основой для работы с файлами. А команда ГиперХост и дальше планирует понемногу разбирать и вводить в курс дела по базовым командам командной строки.