Logiss.ru

Ваша компьютерная помощь
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Примеры команды cat в Linux

Команда cat в Linux

Команда cat — одна из наиболее широко используемых команд в Linux. Имя cat команды происходит от его функциональности против кошачьих файлов Enate. Он может читать и объединять файлы, записывая их содержимое в стандартный вывод. Если файл не указан или если имя входного файла указано в виде одного дефиса ( — ), он считывается из стандартного ввода.

Cat чаще всего используется для отображения содержимого одного или нескольких текстовых файлов, объединения файлов путем добавления содержимого одного файла в конец другого файла и создания новых файлов.

В этом руководстве мы покажем вам, как использовать команду cat на практических примерах.

Синтаксис команды Cat

Прежде чем перейти к использованию команды cat, давайте начнем с обзора основного синтаксиса.

Выражения утилиты cat принимают следующую форму:

  • OPTIONS — варианты кошек . Используйте cat —help чтобы просмотреть все доступные параметры.
  • FILE_NAMES — Ноль или более имен файлов.

Отображение содержимого файла

Наиболее простое и распространенное использование команды cat — это чтение содержимого файлов.

Например, следующая команда отобразит содержимое файла /etc/issue в терминале:

Перенаправить содержимое файла

Вместо вывода вывода на стандартный вывод (на экране) вы можете перенаправить его в файл.

Следующая команда скопирует содержимое file1.txt в file2.txt с помощью оператора ( > ):

Если файл file2.txt не существует, команда создаст его. В противном случае он перезапишет файл.

Используйте оператор ( >> ), чтобы добавить содержимое file1.txt в file2.txt :

Как и раньше, если файла нет, он будет создан.

Печатать номера строк

Чтобы отобразить содержимое файла с номерами строк, используйте параметр -n :

Подавить повторяющиеся пустые строки

Используйте параметр -s чтобы пропустить повторяющиеся пустые выходные строки:

Отображение символов TAB

Параметр -T позволяет визуально различать табуляции и пробелы.

Символы TAB будут отображаться как ^I

Показать конец строк

Чтобы отобразить невидимый символ окончания строки, используйте аргумент -e :

Окончание строки будет отображаться как $ .

Объединение файлов

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

Например, следующая команда прочитает содержимое file1.txt и file2.txt и отобразит результат в терминале:

Вы можете объединить два или более текстовых файла и записать их в файл.

Следующая команда file1.txt содержимое file1.txt и file2.txt и запишет их в новый combinedfile.txt file2.txt с помощью оператора ( > ):

Если combinedfile.txt файл не существует, то команда будет создавать. В противном случае он перезапишет файл.

Чтобы file1.txt содержимое file1.txt и file2.txt и добавить результат в file3.txt с помощью оператора ( >> ):

Если файла нет, он будет создан.

При объединении файлов с помощью cat вы можете использовать те же аргументы, что и в предыдущем разделе.

Создание файлов

Создавать небольшие файлы с помощью cat часто проще, чем открывать текстовый редактор, такой как nano , Vim, Sublime Text или Visual Studio Code .

Чтобы создать новый файл, используйте команду cat за которой следует оператор перенаправления ( > ) и имя файла, который вы хотите создать. Нажмите Enter , введите текст и, когда закончите, нажмите CRTL+D чтобы сохранить файл.

В следующем примере мы создаем новый файл с именем file1.txt :

Если присутствует файл с именем file1.txt , он будет перезаписан. Используйте оператор « >> », чтобы добавить вывод в существующий файл.

Выводы

Команда cat может отображать, комбинировать и создавать новый файл.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Команда cat в Linux / Unix с примерами

Я новый пользователь систем Linux и Unix. Как мне использовать команду cat в Linux или Unix-подобных операционных системах? Можете ли вы предоставить основные примеры и использование синтаксиса для команды cat?

Читайте так же:
Скачать и установить драйвера для nVidia GeForce 9600 GT

Команда cat (сокращение от concatenate) — одна из наиболее часто используемых гибких команд в операционных системах Linux, Apple Mac OS X, Unix, * BSD (FreeBSD / OpenBSD / NetBSD).

Базовые файловые операции с текстовым файлом, такие как отображение или создание новых файлов.

Cинтаксис команды cat

Базовый синтаксис следующий:

cat [options] filename

cat file1
cat > file2
cat file3 | command
cat file4 | grep something

Команда cat в Linux с примерами


Это стандартная программа Unix, используемая для объединения и отображения файлов. Команда cat отображает содержимое файла на экране. Также вы можете использовать команду cat для быстрого создания файла. Команда cat может читать и записывать данные со стандартных устройств ввода и вывода. Обратите внимание, что некоторые из следующих параметров будут работать только с версией GNU команды cat.

Отображение файла с помощью команды cat

Чтобы просмотреть файл, введите:

cat filename
cat /path/to/file
cat /etc/passwd

Создать файл с помощью команды cat

Чтобы создать файл с именем «foo.txt», введите:
cat >foo.txt
Введите следующий текст:

Вам нужно нажать [CTRL] + [D] т.е. удерживайте нажатой кнопку управления, затем нажмите d. Символ> сообщает системе Unix / Linux, что набранные данные должны быть сохранены в файле с именем foo.txt ( дополнительную информацию см. В stdout ). Для просмотра файла используйте команду cat следующим образом:
cat foo.txt

Просмотр большого файла с помощью cat Command и Shell Pipes

Если файл слишком велик, чтобы поместиться на экране компьютера, текст будет прокручиваться вниз с высокой скоростью. Вы не сможете читать. Чтобы решить эту проблему, передайте вывод команды cat команде more или less следующим образом:

cat bigfile | more
cat bigfile | less

Команда more и less действует как фильтры оболочки . Однако вы можете пропустить команду cat и напрямую использовать команду more & less для Linux / Unix следующим образом:

more bigfile
less bigfile

Как объединить два или более файлов с помощью команды cat

Вы можете объединить два файла и создать новый файл с именем report.txt, введите:

cat score.txt names.txt > report.txt
cat report.txt

Как добавить данные в текстовый файл

Чтобы добавить (добавить данные к существующим) данные в файл с именем foo.txt, введите:

Задача: пронумеровать все выходные строки

Введите следующую команду:

cat -n filename
cat —number filename

Как просмотреть непечатаемые символы

Чтобы отобразить символы TAB как ^ I, введите::
cat -T filename
Чтобы отобразить $ в конце каждой строки, введите:

cat -E filename
cat —show-ends filename

Используйте нотацию ^ и M-, кроме LFD и TAB, и показывайте все непечатаемые:

cat -v filename
cat —show-nonprinting filename

Чтобы показать все, введите:
cat -A fileName

ИЛИ
cat -vET fileName
Примеры выходных данных:

Просмотр всех файлов

Вы можете просто использовать подстановочный знак оболочки следующим образом:
cat *
Чтобы просмотреть только файлы (c) * .c, введите:
cat *.c
Другой вариант — bash for loop или ksh for loop :

ИЛИ то же самое с использованием оболочки ksh :

Распечатать файлы

Вы можете напрямую отправить файл на печатающее устройство, такое как /dev/lp
cat resume.txt > /dev/lp
В современных системах /dev/lp может не существовать, и вам необходимо распечатать файл с помощью такого инструмента, как lpr:
cat resume.txt | lpr
ИЛИ
lpr resume.txt

Присоединение к двоичным файлам

Вы можете объединять двоичные файлы. В старые добрые времена большинство загрузок по FTP / HTTP ограничивалось 2 ГБ. Иногда для экономии трафика размер файлов ограничивался 100 МБ. Давайте воспользуемся командой wget для получения некоторых файлов (скажем, large.tar.gz был разделен на 3 файла на удаленном URL-адресе):

Теперь легко объедините такие файлы (загруженные * .bin) с помощью команды cat:
wget url/file1.bin
wget url/file2.bin
wget url/file3.bin

cat file1.bin file2.bin file3.bin > large.tar.gz
### extract it
tar -zxvf large.tar.gz

Другой пример с командой rar под Unix и Linux:

Читайте так же:
Как понять, что видеокарта "умирает"

Программы обмана

Вы можете использовать команду cat, чтобы обмануть многие программы. В этом примере bc считает, что он не запущен на терминалах, и не отображает сообщение об авторских правах. Вывод по умолчанию:
bc -l
Примеры сеанса:

Теперь попробуйте с помощью команды cat:
bc -l | cat
Примеры сеанса:

Тестирование аудиоустройства

Вы можете отправлять файлы на звуковые устройства, такие как /dev/dsp или /dev/audio чтобы убедиться, что вывод и ввод звука работают:

cat filename >/dev/dsp
cat recording.au >/dev/audio

Вы можете просто использовать следующую команду для записи голосового фрагмента и воспроизвести его с помощью команды cat:

Сбор системной информации Linux

### To see CPU information ###
cat /proc/cpuinfo ### To see memory information ###
cat /proc/meminfo ### To see Linux kernel version ###
cat /proc/version

Отображение больших блоков текстовых данных в скрипте

Вы можете использовать здесь документ для отображения больших блоков текстовых данных в скрипте, например help:

cat <<HELPEOF
Usage:
opt1 : Do this
opt2 : Do that
HELPEOF

Другой рабочий пример:

#!/bin/bash
# Author: Vivek Gite <http://www.cyberciti.biz/
# ———————————————— #Set default to my-dev-box
BASEDIR=»/home/vivek/projects/bash/nginx-keepalived/chroot» # Now switch to prod
[[ $HOSTNAME == «lb2.nixcraft.net.in» ]] && BASEDIR=»/etc/nixcraft/nginx/lb2″
[[ $HOSTNAME == «lb2.nixcraft.net.in» ]] && BASEDIR=»/etc/nixcraft/nginx/lb1″ _profile=»$BASEDIR/redhat.conf»
_etc_files=»$BASEDIR/redhat.etc.files.conf»
_etc_dirs=»$BASEDIR/redhat.etc.dirs.conf»
_hooks=»$BASEDIR/hooks.sh» usage() <
cat<<EOF
Usage $0
-e | —enable: Enable the nginx-chroot environment
-E | —upgrade: Upgrade bind and libs in the nginx-chroot environment
-p | —php: Enable the php-cgi in the nginx-chroot environment
-P | —phpupgrade: Upgrade the php-cgi in the nginx-chroot environment
-i | —info: Display the php-cgi and nginx environment information such as version, users, connections etc
EOF
> rootuser() <
local uid=$(id -u)
[[ $uid -ne 0 ]] && < echo «Only root may enable the nginx-chroot environment to the system.»; exit 2; >
> ## function code removed to keep script short and sweet ##
enable_nginix_chroot() <
:
>
upgrade_nginx_chroot() <
:
>
enable_php_cgi_nginx_chroot() <
:
>
upgrade_php_cgi_nginx_chroot() <
:
> get_nginx_chroot_info() <
:
> # Make sure only root run this script
rootuser # Load local hooks
[ -f «$<_hooks>» ] && . $ <_hooks># Load os specifc paths
source $ <_profile># Main logic
case $1 in
-e|—enable) enable_nginix_chroot ;;
-E|—upgrade) upgrade_nginx_chroot;;
-p|—php) enable_php_cgi_nginx_chroot;;
-P|—phpupgrade) upgrade_php_cgi_nginx_chroot;;
-i|—info) get_nginx_chroot_info;;
*) usage; exit 9999;
esac

Печать файлов в обратном порядке

Ни одна кошка не может печатать в обратном порядке, но команда cat может объединять и печатать файлы в обратном порядке:

tac fileName
cat fileName | tac
tac <<<«$myFileName»

См. « Как использовать здесь документы для записи данных в файл в сценарии bash » для получения дополнительной информации.

Команда Cat в Linux. Основные и расширенные примеры

FavoriteДобавить в избранное

Главное меню » Операционная система Linux » Команда Cat в Linux. Основные и расширенные примеры

Команда Cat в Linux. Основные и расширенные примеры

Название cat расшифровывается как catenate , основная задача этой команды является объединение нескольких входных файлов путем последовательной отправки их содержимого на стандартный вывод:

Если вы хотите сохранить результат этой конкатенации в файле, вам необходимо использовать перенаправление оболочки:

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

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

При использовании без каких-либо аргументов команда cat будет считывать данные со своего стандартного ввода и записывать их на свой стандартный вывод, что в основном бесполезно … если вы не используете какой-либо параметр для преобразования данных. Мы поговорим о нескольких интересных вариантах позже.

В дополнение к пути к файлам, команда cat также понимает — специальное имя файла как псевдоним для стандартного ввода. Таким образом, вы можете вставить данные, считанные со стандартного ввода между файлами, указанными в командной строке:

B. Использование команды cat с двоичными файлами

1. Объединение разделенных файлов

Команда cat не делает никаких предположений о содержимом файла, поэтому она будет работать с двоичными данными. Что-то, что может быть полезно, для объединения файлов разбитых с помощью команд split или csplit . Или присоединить к частичным загрузкам, как мы это сейчас сделаем:

Читайте так же:
Как посчитать количество строк в Excel

У нас теперь две половины изображения. Вы можете открыть первую половину и увидеть, что она «сломана» с помощью ImageMagick, display , gimp , или любого другого программного обеспечения, способного читать файлы изображений:

Если вы изучите команду curl, которую мы использовали, вы увидите, что две части прекрасно дополняют друг друга. Первая половина – от 0 байт до 50000, а вторая половина – от 50001 байта до конца файла. Между ними не должно быть недостающих данных. Поэтому нам нужно только связать две части вместе (в правильном порядке), чтобы вернуть полный файл:

2. Работа с потоковыми форматами файлов

Вы можете не только использовать команду cat для «воссоединения» двоичных файлов, которые были разделены на несколько частей, в некоторых случаях вы также можете создавать новые файлы таким образом. Это особенно хорошо работает с «без заголовка» или «потоковыми» файловыми форматами, такими как видеофайлы (файлы .TS ) транспортного потока MPEG :

Теперь мы можем комбинировать все эти видеопотоки с потоком данных с помощью команды cat , получив в выходном файле абсолютно корректный TS-файл:

Благодаря формату файла TS вы можете объединить эти файлы в том порядке, который вы хотите, и вы даже можете использовать один и тот же файл несколько раз в списке аргументов для создания циклов или повторения в выходном видео. Очевидно, это было бы забавно, если бы мы использовали анимированные изображения, но сможете ли вы сделать это самостоятельно: многие устройства потребительского класса записывают файлы TS, а если нет, вы все равно можете использовать ffmpeg для конвертирования практически любого видеофайла в файл транспортного потока. Не стесняйтесь делиться своими творениями, используя раздел комментариев!

3. Взлом cpio-архивов

В качестве последнего примера давайте посмотрим, как мы можем использовать команду cat для объединения нескольких архивов cpio . Но на этот раз это будет не так просто, поскольку для этого потребуется немного знаний о формате архивного файла cpio .

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

Хорошо является то, что двоичный архив cpio, этот контейнер с фиксированной длиной 280 байтов. Итак, используя стандартную команду head, у нас есть простой способ ее удалить:

C. Основные параметры команды cat

После того, как вы поиграли с различными форматами двоичных файлов, вернемся к простым старым текстовым файлам, изучив пару опций, специально предназначенных для работы с этими файлами. Несмотря на то, что они не являются частью стандарта POSIX, эти параметры являются переносимыми по версиям BSD и GNU для cat . Обратите внимание: мы не претендуем на то, что мы здесь разберем все моменты, поэтому проверьте страницу man , чтобы увидеть полный список опций, поддерживаемых вашей системой команду cat !

-n : числовые строки

С помощью опции n команда cat префикс каждой выходной строки по номеру строки:

В параметр -n число выходных линий. Это означает, что счетчик не сбрасывается при переходе от одного входного файла в другой, как вы увидите это, если вы попробовали самостоятельно следующую команду:

-s : подавление повторяющихся пустых выходных строк

С помощью опции -s команда cat сбрасывает несколько последовательных пустых строк:

В приведенном выше примере вы можете увидеть, что в выводе по умолчанию строки 10 и 11 были пустыми. При добавлении опции -s вторая пустая строка была отброшена.

-b : число только непустые строки

Несколько связанный с двумя предыдущими вариантами, опция -b будет содержать строки, игнорируя пустые:

Читайте так же:
Скачать StairDesigner бесплатно на компьютер

В приведенном выше примере используются два экземпляра команды 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:

Другим вариантом использования этого параметра -v является поиск управляющих символов, которые могли бы просочиться в текстовый файл. Если вы запомнили это, у нас есть эта странная проблема выше с вариантом, -b , обозначающим 6-ю строку ввода, тогда как она выглядела пустой. Итак, давайте расследуем следующее:

Ах ах! Вы видите эти знаки ^M ? Они используются для замены символа обратной невидимой каретки. Откуда это? Ну, протокол, dict , как и любой другой интернет-протокол, использует CRLF в качестве терминатора линии. Поэтому мы загрузили их как часть наших образцовых файлов. Но пока это объясняет, почему cat считает, что 6-я строка не пуста.

-e : отображение невидимых символов, включая конец строки

Опция -e работает с опцией -v , только будет добавить знак доллара ( $ ) перед каждым символом перевода строки, тем самым явно показывая конец линии:

-t : отображение невидимых символов, включая вкладки

Опция -t работает как вариант -v , за исключением того, что будет также отображать табличные данные с помощью курсора ^I (закладка хранится в виде байта удержания значение 9, а I в ASCII составляет 64 + 9 = 73):

-et : показать все скрытые символы

Как мы уже говорили кратко, если вы хотите отобразить все непечатаемые символы, в том числе таблицы и маркеры конца строки, вам нужно будет использовать варианты -e и -t :

Бонус: бесполезное использование команды cat в Linux

Никакая статья о команде cat не была бы полной без упоминания об использовании анти-шаблона «Бесполезное использование cat».

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

В приведенном выше примере мы использовали контейнер для отображения содержимого файла uuoc.txt с помощью команды less:

Таким образом, единственной целью команды cat было подавать стандартный ввод команды less с содержимым файла uuoc.txt . Мы бы получили такое же поведение, используя перенаправление оболочки:

Собственно, команда, less , как и многие команды, также принимает имя файла в качестве аргумента. Поэтому мы могли просто написать это вместо этого:

Читайте так же:
Настройки брандмауэра в Windows (Виндовс) 7

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

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

Но при написании этой статьи мы сделали быстрый эксперимент, сравнивая время, требуемое с UUOC и без него тестовым скриптом awk для обработки 500 МБ данных, поступающих с медленного носителя.

К нашему удивлению, разница была далека от незначительной.

Однако причина заключается не в создании дополнительного процесса. Но из-за дополнительного чтения/записи и переключения контекста UUOC берет на себя (как вы можете вывести его из времени, потраченного на выполнение системного кода). Поэтому, действительно, когда вы работаете с большими наборами данных, дополнительная команда cat имеет невыгодную стоимость. Что касается нас, мы постараемся быть более бдительными с этим сейчас! А вы? Если у вас есть примеры бесполезного использования Cat, не стесняйтесь делиться ими с нами!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Команда cat в Linux

Команда cat в Linux

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

Назначение и синтаксис команды cat

Наименование команды произошло за счет сокращения слова «concatenate» («конкатенация, сцепка»). Команда позволяет создавать и объединять содержимое файлов, а также считать данные в указанном файле и отображать их на экране монитора. Правда, есть ряд операторов и опций, которые расширяют функционал, например, перенаправляют вывод или отображают то, что вводится на клавиатуре в текущий момент.

Общий синтаксис ввода команды выглядит так:

Передавать утилите можно неограниченное количество файлов. Их содержимое будет выводиться на мониторе последовательно, без каких-либо разделителей. Если нужно изменить метод вывода, понадобится ввести опции.

Основной их перечень:

  1. -b – включить нумерацию непустых строк (заполненных данными).
  2. -E – в конце каждой строки будет отображаться символ $.
  3. -n – пронумеровывать все строки, даже пустые (без данных).
  4. -s – автоматически удалять пустые повторяющиеся строки.
  5. -T – помечать табуляции комбинацией символов ^I.
  6. -h – вывести на экран монитора справочную информацию.
  7. -v – отобразить текущую версию утилиты.

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

Примеры использования команды cat

Простейший вариант ввода команды, когда она просто отображает содержимое указанного файла:

Если нужно передать системе несколько файлов, достаточно перечислить их в параметрах:

Большинство команд, используемых в Linux, поддерживают стандартный поток ввода данных при помощи символа «-». В случае с cat это будет выглядеть так:

Теперь опробуем одну из ранее приведенных опций. Например, нумерацию непустых строк:

Или всех строк, имеющихся в файле:

Если попутно требуется удалить повторяющиеся пустые строки, команда будет выглядеть так:

При отсутствии параметров и опций команда будет отображать данные из стандартного ввода:

Чтобы завершить запись, нужно нажать <Ctrl+D>. Фактически получается примитивный текстовый редактор, ведь утилита считывает вводимые символы и выводит их на экран монитора. Можно направить данные в указанный файл на диске:

Чтобы записать данные из нескольких файлов в один, команда будет выглядеть так:

Основное назначение команды cat – считывание данных из файлов, поэтому можно смело экспериментировать с комбинацией опций и параметров. При объединении файлов рекомендуется указывать уникальное имя создаваемого файла, дабы исключить риски перезаписи важной информации.

Ссылка на основную публикацию