Что такое «кошка»?

9

Я видел, как команда кота появилась в некоторых онлайн-материалах, и мне было любопытно, что сделал cat и что это значит в контексте того, кто просто выполняет некоторые простые средства командной строки.

    
задан cosmoflop12 01.07.2015 в 01:38
источник

4 ответа

9

% Основной задачей co_de% является поддержка файлов cat enate. cat покажет содержимое cat file1 file2 ... , file и остальных один за другим, как если бы содержимое было в одном файле. См. manpage :

NAME
       cat - concatenate and print files

Он предназначен для использования, где:

  • целевая команда не может читать файлы, и вам нужно передать ей несколько файлов. Примером может служить утилита file2 . Обычно, с одним файлом, вы должны:

    tr < file
    

    Но с несколькими файлами перенаправление нельзя использовать, поэтому вам нужно сделать:

    cat file1 file2 ... | tr
    
  • целевая команда может читать из нескольких файлов, но ее поведение может измениться, когда ему задано несколько файлов. Например, tr , который печатает подсчеты для каждого файла вместе с именами файлов, в которых вы, возможно, хотели просто общий, без имени файла.

Помните, что большинство команд, с которыми вы сталкиваетесь ( wc , grep , sed , awk , ...), могут отлично читать файлы.

Если вы хотите просмотреть содержимое файла, использовать пейджер - sort и less являются в высшей степени способными представлять файлы для просмотра и гораздо удобнее использовать.

    
ответ дан muru 01.07.2015 в 02:17
источник
6

cat - одна из наиболее часто используемых команд в Unix-подобных операционных системах. Он имеет три связанные функции в отношении текстовых файлов:

  1. отображение их
  2. объединение их копий
  3. создание новых.
  4. Скопировать файлы

Общий синтаксис кота:

cat [options] [filenames] [-] [filenames]

Чтение файлов

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

cat file1

конкатенация

Вторая роль кошки - это конкатенация. (Это источник любопытного имени кошки.) На исходные файлы не влияет.

Например, следующая команда объединяет копии содержимого трех файлов file1, file2 и file3:

cat file1 file2 file3

Содержимое каждого файла будет отображаться на экране монитора. Этот вывод можно так же легко перенаправить с помощью оператора перенаправления вывода в другой файл, например file4, используя следующее:

cat file1 file2 file3 > file4

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

Благодаря комментарию @muru : кошка способна создавать новые файлы в зависимости от функции перенаправления оболочки и не сам

Для небольших файлов это часто бывает проще, чем использование vi, gedit или других текстовых редакторов. Это выполняется путем ввода кота с последующим оператором перенаправления вывода и имени создаваемого файла, затем нажмите ENTER и, наконец, одновременно нажав Ctrl & amp; d .

Например, новый файл с именем file1 можно создать, набрав

cat > file1

, затем нажмите ENTER и одновременно нажмите Ctrl & amp; d .

PS1: Если файл с именем file1 уже существует, он будет перезаписан

PS2: вы можете добавить к выведенному файлу, используя append operator >> example cat > > file1

Скопировать файлы

Также можно использовать команду cat ( в зависимости от в функции перенаправления оболочки) для создания нового файла и передачи ему данных из существующего файла. Пример: сделайте копию файла oldfile.txt :

cat oldfile.txt > newfile.txt

Литература:

ответ дан Maythux 01.07.2015 в 06:05
источник
1

Его можно использовать для отображения содержимого файла. Например: cat "my file.txt" . Вы также можете сделать man cat , чтобы показать вам сведения о том, для чего может использоваться cat .

    
ответ дан Puneet Gill 01.07.2015 в 01:43
источник
0

Вот другой способ для создания файла с использованием перенаправления оболочки (или трубопровода ) и cat :

cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF

cat << EOF выведет следующие строки до тех пор, пока строка EOF не встретится снова. Затем > ( >> ) перенаправляет вывод в файл foo.sh . В качестве альтернативы, если вам нужно создать файл с правами root, вы можете передать вывод команде tee ( tee -a ), выполняемой командой sudo :

cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
  • Приведенное выше действие сделает исполняемый файл ( chmod +x ), если он успешно создан ( && ).
  • Особое значение некоторых символов (как $ ) должно быть экранировано (с \ ) в выходе cat .
ответ дан pa4080 05.01.2018 в 08:41
источник

Ознакомьтесь с другими вопросами по меткам