- Команда cat в Linux
- Назначение и синтаксис команды cat
- Примеры использования команды cat
- cat в Linux – всё что нужно знать
- Подготовительные действия
- Просмотр содержимого
- Нумерация строк
- Удаление повторяющихся пустых строк
- Добавление знака $
- Небольшой вывод
- Отображение текстовых файлов
- Создание нового файла с помощью cat
- Просмотр файлов с помощью cat в Linux
- Редирект Контента с Помощью Команды Cat
- Конкатенация («Склеивание») Файлов с Помощью Команды Cat
- Обозначение Конца Строки Командой Cat
- Нумерация Строк с Помощью Команды Cat в Linux
- Присоединение содержимого текстового файла в конец другого текстового файла
- Добавление стандартного ввода в вывод cat
- Основные параметры команды cat
- -n: числовые строки
- -s: подавление повторяющихся пустых выходных строк
- -b: число только непустые строки
- -v,,-e, -t: Отображение непечатаемых символов
- -v: просмотр невидимых символов
- -t: отображение невидимых символов, включая вкладки
- -et: показать все скрытые символы
- Копирование текстового файла
- Удаление Пустых Строк
- Нумерация Непустых Строк с Помощью Команды Cat в Linux
- Отображение Файла в Обратном Порядке
- Примеры
- Заключение
Команда cat в Linux
Команда cat считается наиболее востребованной при работе в операционных системах Linux. И все из-за того, что она, в зависимости от используемых опций, позволяет просматривать содержимое файлов, склеивать их и т.д. Поэтому освоение UNIX-совместимых платформ часто начинают с нее и подобных команд.
Назначение и синтаксис команды cat
Наименование команды произошло за счет сокращения слова «concatenate» («конкатенация, сцепка»). Команда позволяет создавать и объединять содержимое файлов, а также считать данные в указанном файле и отображать их на экране монитора. Правда, есть ряд операторов и опций, которые расширяют функционал, например, перенаправляют вывод или отображают то, что вводится на клавиатуре в текущий момент.
Общий синтаксис ввода команды выглядит так:
Передавать утилите можно неограниченное количество файлов. Их содержимое будет выводиться на мониторе последовательно, без каких-либо разделителей. Если нужно изменить метод вывода, понадобится ввести опции.
Основной их перечень:
- -b – включить нумерацию непустых строк (заполненных данными).
- -E – в конце каждой строки будет отображаться символ $.
- -n – пронумеровывать все строки, даже пустые (без данных).
- -s – автоматически удалять пустые повторяющиеся строки.
- -T – помечать табуляции комбинацией символов ^I.
- -h – вывести на экран монитора справочную информацию.
- -v – отобразить текущую версию утилиты.
Вот такой краткий перечень опций прилагается к приложению cat. Его достаточно для выполнения операций, задуманных разработчиком.
Примеры использования команды cat
Простейший вариант ввода команды, когда она просто отображает содержимое указанного файла:
Если нужно передать системе несколько файлов, достаточно перечислить их в параметрах:
Большинство команд, используемых в Linux, поддерживают стандартный поток ввода данных при помощи символа «-». В случае с cat это будет выглядеть так:
Теперь опробуем одну из ранее приведенных опций. Например, нумерацию непустых строк:
Или всех строк, имеющихся в файле:
Если попутно требуется удалить повторяющиеся пустые строки, команда будет выглядеть так:
При отсутствии параметров и опций команда будет отображать данные из стандартного ввода:
Чтобы завершить запись, нужно нажать . Фактически получается примитивный текстовый редактор, ведь утилита считывает вводимые символы и выводит их на экран монитора. Можно направить данные в указанный файл на диске:
Чтобы записать данные из нескольких файлов в один, команда будет выглядеть так:
Основное назначение команды cat – считывание данных из файлов, поэтому можно смело экспериментировать с комбинацией опций и параметров. При объединении файлов рекомендуется указывать уникальное имя создаваемого файла, дабы исключить риски перезаписи важной информации.
Источник
cat в Linux – всё что нужно знать
Прежде чем мы начнём углубляться в тему статьи, мы должны войти в VPS через SSH и быстро проверить основной синтаксис. Команда принимает имя файла в качестве аргумента вместе с опциями, уточняющими отдельные операции.
Чтобы найти все доступные опции, просто введите cat –help в терминале.
Подготовительные действия
Сначала хотелось бы уделить время предварительным действиям, поскольку не все юзеры знакомы с принципом работы консоли. Дело в том, что при открытии файла требуется либо указывать точный путь к нему, либо производить запуск команды, находясь непосредственно в самой директории через «Терминал». Поэтому мы советуем для начала просмотреть такое руководство:
- Запустите файловый менеджер и перейдите в ту папку, где хранятся необходимые файлы.
Нажмите на одном из них правой кнопкой мыши и выберите пункт «Свойства».
Во вкладке «Основные» ознакомьтесь с информацией по поводу родительской папки. Запомните этот путь, ведь он пригодится далее.
Запустите «Терминал» через меню или комбинацию клавиш Ctrl + Alt + T.
Пропишите команду cd /home/user/folder, где user — имя пользователя, а folder — папка, где хранятся объекты. За перемещение по пути отвечает стандартная команда cd.
Таким методом осуществляется переход к определенной директории через стандартную консоль. Дальнейшие действия также будут производиться через эту папку.
Просмотр содержимого
Одна из основных функций упомянутой команды — просмотр содержимого различных файлов. Вся информация отображается отдельными строками в «Терминале», а применение cat выглядит так:
- В консоли введите cat testfile, где testfile — имя необходимого файла, а затем нажмите на клавишу Enter.
Ознакомьтесь с содержимым объекта.
Вы можете открыть сразу несколько файлов, для этого потребуется указать все их названия, например, cat testfile testfile1.
Строки будут совмещены и отобразятся одним целым.
Вот так работает cat без применения доступных аргументов. Если же вы просто пропишите в «Терминале»cat, то получите некое подобие консольного блокнота с возможностью записывать нужное количество строк и сохранять их нажатием на Ctrl + D.
Нумерация строк
Сейчас давайте затронем рассматриваемую команду с применением различных аргументов. Начать следует с нумерации строк, а за это отвечает -b.
- В консоли напишите cat -b testfile, где testfile — название нужного объекта.
Как видите, были пронумерованы все присутствующие не пустые строки.
Вы можете использовать этот аргумент с выводом нескольких файлов, как это было показано выше. В таком случае нумерация будет продолжаться.
Если есть желание пронумеровать все строки, включая пустые, придется задействовать аргумент -n, и тогда команда приобретает вид: cat -n testfile.
Удаление повторяющихся пустых строк
Случается так, что в одном документе присутствует множество пустых строк, возникших каким-либо образом. Вручную удалять их через редактор не всегда удобно, поэтому здесь тоже можно обратиться к команде cat, применив аргумент -s. Тогда строка приобретает вид cat -s testfile (доступно перечисление нескольких файлов).
Добавление знака $
В операционной системе Linux знак доллара в конце строчки, означает что команда будет выполнена без root прав. Бывает, что нужно добавить символ “$” в конец всех строк документа, для этого нам поможет опция -e.
cat -e script
Небольшой вывод
В итоге можно сказать, что популярная утилита имеет три основных функции:
- выводит на экран текст;
- перенаправляет стандартный вывод;
- добавляет символа $.
Отображение текстовых файлов
Простейший способ использования cat – задать команде имя файла. Содержимое текстового файла будет выведено на экран. Например, следующая команда прочитает содержимое файла mytext.txt и выведет его в стандартный поток вывода (экран вашего терминала):
cat mytext.txt
Если файл слишком длинный, он пролистается, и вы увидите только последний экран. При необходимости просмотреть документ постранично или прокручивать его вперёд и назад можно воспользоваться такими средствами просмотра как pg, more или less.
Когда указано несколько файлов, cat будет выводить их последовательно, объединяя содержимое в потоке стандартного вывода. Поэтому следующая команда выведет содержимое двух текстовых файлов, как если бы они были одним:
cat mytext.txt mytext2.txt
Создание нового файла с помощью cat
]# cat > new_file это новый файл
1234 | [hc@host ]# cat > new_file это новый файл |
С помощью cat и символа > мы перенаправили стандартный вывод в файл new_file. Для завершения заполнения файла данными перейдите на новую строку и нажмите Ctrl+D.
Просмотр файлов с помощью cat в Linux
Для просмотра файла просто наберите:
#cat [hc@host
]# cat new_file это новый файл
1234 | [hc@host ]# cat new_file это новый файл |
Можно вывести с номерами строк:
]# cat -n new_file 1 это 2 новый 3 файл
1234 | [hc@host ]# cat -n new_file 1 это 2 новый 3 файл |
Можно просмотреть содержимое нескольких файлов.
]# cat -n new_file old_file 1 это 2 новый 3 файл 4 Это старый файл
12345 | [hc@host ]# cat -n new_file old_file 1 это 2 новый 3 файл 4 Этостарыйфайл |
Обратите внимание, что содержимое выводится единым массивом данных, что хорошо видно по тому, что содержание второго файла вывелось строкой под номером 4 – нумерация не началась заново при выводе этого файла. Т.е. cat, как это и заложено в ее названии, склеила файлы.
Редирект Контента с Помощью Команды Cat
Вы можете не только отобразить содержимое файла в консоли, но и перенаправить вывод в другой файл, используя параметр >. Вот пример команды:
cat ishodnyifail.txt > failnaznachenija.txt
Если файл назначения не существует, команда создаст его или перезапишет существующий с таким же именем.
Чтобы добавить содержимое в файл назначения, используйте опцию >>:
cat ishodnyifail.txt >> failnaznachenija.txt
Конкатенация («Склеивание») Файлов с Помощью Команды Cat
Команда cat также позволяет объединять несколько файлов в один. По сути это работает так же, как и функция перенаправления выше, но с несколькими исходными файлами.
cat ishodnyifail1.txt ishodnyifail2.txt > failnaznachenija.txt
Как и ранее, приведенная выше команда создаст файл назначения, если он не существует, или перезапишет существующий файл с таким же именем.
Обозначение Конца Строки Командой Cat
С помощью команды cat также можно обозначить конец строки. Маркер конца строки — символ $. Чтобы реализовать эту функцию, используйте параметр -E:
cat -E imiafaila.txt
Нумерация Строк с Помощью Команды Cat в Linux
Эта команда также позволяет отобразить содержимое файла с пронумерованными строками. Реализует эту функцию опция -n:
cat -n imiafaila.txt
Присоединение содержимого текстового файла в конец другого текстового файла
Вместо перезаписи файла можно присоединить текст файла-источника к другому файлу при помощи оператора перенаправления «>>».
Например, команда:
cat mytext.txt >> another-text-file.txt
Прочтет содержимое mytext.txt и запишет его в конец файла another-text-file.txt. Если этот файл не существует, он будет создан, и содержимое mytext.txt будет записано в новый файл.
Это работает также для нескольких файлов. Следующая команда последовательно запишет содержимое mytext.txt и mytext2.txt в конец файла another-text-file.txt:
cat mytext.txt mytext2.txt >> another-text-file.txt
Добавление стандартного ввода в вывод cat
Если в качестве имени файла задать дефис («-«), cat осуществляет считывание из стандартного потока ввода. Например, если у вас есть файл list.txt со следующим текстом:
вы можете воспользоваться командой echo для вывода текста, направить этот текст команде cat и указать ей объединить его с содержимым файла:
echo “Мой список покупок” | cat – list.txt
На выходе получим следующий текст:
Мой список покупок
яблоки
апельсины
масло
хлеб
Основные параметры команды cat
После того, как вы поиграли с различными форматами двоичных файлов, вернемся к простым старым текстовым файлам, изучив пару опций, специально предназначенных для работы с этими файлами. Несмотря на то, что они не являются частью стандарта POSIX, эти параметры являются переносимыми по версиям BSD и GNU для cat. Обратите внимание: мы не претендуем на то, что мы здесь разберем все моменты, поэтому проверьте страницу man, чтобы увидеть полный список опций, поддерживаемых вашей системой команду cat!
-n: числовые строки
С помощью опции n команда cat префикс каждой выходной строки по номеру строки:
cat -n andreyex.txt 1 2 andreyex andreyex n. 3 a natural family of lithe-bodied round-headed fissiped 4 mammals, including the cats; wildcats; lions; leopards; 5 cheetahs; and saber-toothed tigers. 6 7 Syn: family
В параметр -n число выходных линий. Это означает, что счетчик не сбрасывается при переходе от одного входного файла в другой, как вы увидите это, если вы попробовали самостоятельно следующую команду:
-s: подавление повторяющихся пустых выходных строк
С помощью опции -s команда cat сбрасывает несколько последовательных пустых строк:
cat -n ubuntu.txt andreyex.txt | sed -n 8,13p 8 lynx (
$ cat -ns ubuntu.txt andreyex.txt | sed -n 8,13p 8 lynx (
В приведенном выше примере вы можете увидеть, что в выводе по умолчанию строки 10 и 11 были пустыми. При добавлении опции -s вторая пустая строка была отброшена.
-b: число только непустые строки
Несколько связанный с двумя предыдущими вариантами, опция -b будет содержать строки, игнорируя пустые:
$ cat -b andreyex.txt | cat -n 1 2 1 andreyex andreyex n. 3 2 a natural family of lithe-bodied round-headed fissiped 4 3 mammals, including the cats; wildcats; lions; leopards; 5 4 cheetahs; and saber-toothed tigers. 6 5 7 6 Syn: family
В приведенном выше примере используются два экземпляра команды cat с различными параметрами в контейнере. Внутренняя нумерация происходит с помощью опции -b, используемой с первой командой cat. Внешняя нумерация исходит с помощью опции -n, используемой со второй командой cat.
Как вы можете увидеть, первая и последняя строки не были пронумерованы опцией -b, потому что они пусты. Но как насчет 6-й линии? Почему она по-прежнему нумеруется с опцией -b? Ну, потому что это строка заполненная пробелами, но не пустая, как мы увидим в следующем разделе.
-v,,-e, -t: Отображение непечатаемых символов
Три варианта,-v, -e `, and `-t которые используются для отображения различных наборов невидимых символов. Даже если наборы перекрываются, нет опции «catch-all», поэтому вам придется комбинировать их, если вы хотите отображать все невидимые символы.
-v: просмотр невидимых символов
Опция -v отображает все непечатаемые символы с кареткой и мета – обозначениями, за исключением строки и табуляции.
С помощью этой опции управляющие символы будут отображаться как каретка ( ^), за которыми следует соответствующий символ ASCII (например, возврат каретки, 13 байт отображается так, ^M как M в ASCII – 64 + 13), а символы с набором бит высокого порядка появится в «мета» описании M- за которой следует представление, соответствующее 7 младшим битам (например, байт 141 будет отображаться так, M-^M как 141 – 128 + 13).
Хотя, казалось бы, эзотерическая, эта функция может быть полезна при работе с двоичными файлами, например, если вы хотите изучить необработанную информацию, встроенную в файл JPEG:
$ cat -v cat.jpg | fold -75 | head -10 M-^?M-XM-^?M-`^@^PJFIF^@^A^A^A^@H^@H^@^@M-^?M-
Опция -e работает с опцией -v, только будет добавить знак доллара ($) перед каждым символом перевода строки, тем самым явно показывая конец линии:
$ cat -e andreyex.txt $ andreyex andreyex n.^M$ a natural family of lithe-bodied round-headed fissiped^M$ mammals, including the cats; wildcats; lions; leopards;^M$ cheetahs; and saber-toothed tigers.^M$ ^M$ Syn: family
-t: отображение невидимых символов, включая вкладки
Опция -t работает как вариант -v, за исключением того, что будет также отображать табличные данные с помощью курсора ^I (закладка хранится в виде байта удержания значение 9, а I в ASCII составляет 64 + 9 = 73):
$ cat -t andreyex.txt andreyex andreyex n.^M ^Ia natural family of lithe-bodied round-headed fissiped^M ^Imammals, including the cats; wildcats; lions; leopards;^M ^Icheetahs; and saber-toothed tigers.^M ^M ^ISyn: family
-et: показать все скрытые символы
Как мы уже говорили кратко, если вы хотите отобразить все непечатаемые символы, в том числе таблицы и маркеры конца строки, вам нужно будет использовать варианты -e и -t:
$ cat -et andreyex.txt $ andreyex andreyex n.^M$ ^Ia natural family of lithe-bodied round-headed fissiped^M$ ^Imammals, including the cats; wildcats; lions; leopards;^M$ ^Icheetahs; and saber-toothed tigers.^M$ ^M$ ^ISyn: family
Копирование текстового файла
Обычно копирование осуществляется командой cp, но для копирования текстовых файлов вы можете аналогичным образом использовать команду cat. cat отправляет результат в stdout (стандартный поток вывода), обычно это экран терминала. Однако, можно перенаправить результат в файл при помощи символа перенаправления “>”.
cat mytext.txt > newfile.txt
считает содержимое mytext.txt и отправить его в стандартный поток вывода, но вместо отображения текста оболочка перенаправит результат в файл newfile.txt. Если этот файл не существует, он будет создан. Если он будет же существует, то будет перезаписантс потерей предыдущего содержимого, поэтому будьте осторожны.
Аналогично можно объединять несколько файлов в один. Например, команда
cat mytext.txt mytext2.txt > newfile.txt
считает содержимое mytext.txt и mytext2.txt и запишет объединенный текст в newfile.txt. При отсутствии файла он будет создан, при наличии — перезаписан.
Удаление Пустых Строк
Чтобы удалить пустые повторяющиеся строки и сэкономить место на дисплее, вы можете применить опцию -s. Но имейте в виду, что этот параметр удалит только повторяющиеся пустые строки, оставив одну пустую строку.
cat -s imiafaila.txt
Нумерация Непустых Строк с Помощью Команды Cat в Linux
Чтобы вывести номер каждой строки, не учитывая пустых, используйте опцию -b. Но помните, что параметр -b отменяет опцию -n:
cat -b imiafaila.txt
Отображение Файла в Обратном Порядке
Чтобы просмотреть содержимое файла в обратном порядке, начиная с последней строки и заканчивая первой, просто используйте команду tac (команду cat, написанную задом наперёд):
Примеры
Рассмотрим простой пример. Нужно узнать имя компьютера. Для этого, считаем файл hostname.
cat /etc/hostname
Читаем имя компьютера
Как видим выше на скриншоте, команда просто прочитала текст и показала его на экране. В нашем случае имя компьютера это debian.
сat -n /home/user/file
Результат выполнения с ключом -n
ВАЖНО! Опция -n нумерует все строки, в том числе пустые.
Заключение
cat — простой, но очень полезный инструмент для работы с данными в текстовых файлах, системных логах, файлах конфигурации и любыми другими читаемыми для человека данными.
Источник