Я видел команду cat, появляющуюся в некоторых онлайн-материалах, и мне было любопытно, что cat
и зачем она делает в контексте кого-то, кто просто делает некоторые простые вещи из командной строки.
источник
Я видел команду cat, появляющуюся в некоторых онлайн-материалах, и мне было любопытно, что cat
и зачем она делает в контексте кого-то, кто просто делает некоторые простые вещи из командной строки.
cat
«S основная цель состоит в том, чтобы против кошачьих файлов Enate. cat file1 file2 ...
будет отображать содержимое file
, file2
а остальные один за другим, как если бы содержимое было в одном файле. Смотрите справочную страницу :
NAME
cat - concatenate and print files
Он предназначен для использования, где либо:
целевая команда не может читать из файлов, и вам нужно передать ей несколько файлов. Примером является tr
утилита. Обычно, с одним файлом, вы должны сделать:
tr < file
Но с несколькими файлами перенаправление не может быть использовано, поэтому вы должны сделать:
cat file1 file2 ... | tr
wc
, что печатает счетчики для каждого файла вместе с именами файлов, где вы, возможно, хотели получить только общее количество, без имени файла.Помните , что большинство команд вы сталкиваетесь ( grep
, sed
, awk
, sort
, ...) может читать файлы прекрасно.
Если вы хотите просмотреть содержимое файла, используйте пейджер - less
и more
оба в высшей степени способны представлять файлы для просмотра, и их гораздо удобнее использовать.
< <(cat file[12]) tr
а также<<<$(cat file[12]) tr
оба являются совершенно допустимыми способами перенаправления нескольких файлов. Конечно, это нужно иcat
для этого, просто этот трубопровод - не единственный способ.cat
является одной из наиболее часто используемых команд в Unix-подобных операционных системах. Он имеет три связанные функции в отношении текстовых файлов:Общий синтаксис кошки:
Чтение файлов
Наиболее распространенное использование cat - чтение содержимого файлов, и cat часто является наиболее удобной программой для этой цели. Все, что необходимо для открытия текстового файла для просмотра на мониторе дисплея, - это ввести слово cat, затем пробел и имя файла, а затем нажать клавишу ВВОД. Например, следующее будет отображать содержимое файла с именем file1:
конкатенация
Вторая роль кота - конкатенация. (Это источник любопытного имени кошки.) Не влияет на исходные файлы.
Например, следующая команда объединит копии содержимого трех файлов file1, file2 и file3:
Содержимое каждого файла будет отображаться на экране монитора. Этот вывод можно так же легко перенаправить с помощью оператора перенаправления вывода в другой файл, например file4, используя следующее:
Создание файла
Благодаря комментарию @muru : кошка может создавать новые файлы в зависимости от функции перенаправления оболочки, а не сама
Для небольших файлов это часто проще, чем использовать vi, gedit или другие текстовые редакторы. Для этого введите cat, затем оператор перенаправления вывода и имя создаваемого файла, затем нажмите ENTERи, наконец, одновременно нажмите клавиши Ctrl& d.
Например, новый файл с именем file1 можно создать, набрав
затем нажмите ENTERи одновременно нажмите кнопки Ctrl& d.
PS1: если файл с именем file1 уже существует, он будет перезаписан
PS2: вы можете добавить к выходу из файла, используя
>>
пример оператора cat >> file1Копировать файлы
Команду cat также можно использовать (в зависимости от функции перенаправления оболочки) для создания нового файла и передачи ему данных из существующего файла. Пример: сделать копию файла
oldfile.txt
:Ссылки:
источник
cat
не создает эти файлы - оболочка, когда вы использовали перенаправление. Вы могли бы также сделатьecho foo > file1
.cat
что на самом деле делает что-то другое. Например, выполнениеless file1 > file2
(илиgrep '.*' file1 > file
илиawk 1 file1 > file2
или ...) имеет тот же эффект. То же самое для 4. Это просто злоупотребления.> file
и дать тот же результат, но разве я не могу считать это действительным, если сделать это с кошкой ?!cat
это не создает файл. Утверждениеcat
создает или копирует файл - просто ложь.Может использоваться для отображения содержимого файла. Например:
cat "my file.txt"
. Вы также можете сделать,man cat
чтобы показать вам детали о том, чтоcat
может быть использовано для.источник
Вот еще один способ создания файла с использованием перенаправления оболочки (или конвейера) и
cat
:cat << EOF
будет выводить следующие строки, пока строкаEOF
не встретится снова. Затем>
(>>
) перенаправит вывод в файлfoo.sh
. В качестве альтернативы, если вам нужно создать файл с правами root, вы можете направить вывод в командуtee
(tee -a
), выполняемую командойsudo
:chmod +x
), если он успешно создан (&&
).$
) должно быть экранировано (with\
) в выводеcat
.источник