Для чего используется слово «cat»?

Для чего используется слово «cat»?

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

решение1

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

NAME
       cat - concatenate and print files

Он предназначен для использования в следующих случаях:

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

    tr < file
    

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

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

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

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

решение2

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

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

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

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

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

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

cat file1

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

Вторая роль cat — конкатенация. (Отсюда и странное имя cat.) На исходные файлы это не влияет.

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

cat file1 file2 file3

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

cat file1 file2 file3 > file4

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

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

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

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

cat > file1

затем нажмите ENTERи одновременно нажмите клавиши Ctrl& d.

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

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

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

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

cat oldfile.txt > newfile.txt

Использованная литература:

решение3

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

решение4

Вотдругой путьдля создания файла с использованием перенаправления оболочки (или конвейеризации) и 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.

Связанный контент