Онлайн-рабочие станции OnWorks Linux и Windows

Логотип

Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

cat - объединить файлы

Ассоциация кошка команда читает один или несколько файлов и копирует их в стандартный вывод следующим образом:


Кот [файл ...]

Кот [файл ...]


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



[я @ linuxbox ~] $ кошка ls-output.txt

[я @ linuxbox ~] $ кошка ls-output.txt


отобразит содержимое файла ls-output.txt. кошка часто используется для отображения коротких текстовых файлов. С кошка может принимать более одного файла в качестве аргумента, его также можно использовать для объединения файлов. Допустим, мы загрузили большой файл, который был разделен на несколько частей (мультимедийные файлы часто разделяются таким образом в Usenet), и мы хотим объединить их вместе. Если бы файлы были названы:

фильм.mpeg.001 фильм.mpeg.002 ... фильм.mpeg.099

мы могли бы объединить их вместе с помощью этой команды:



cat movie.mpeg.0 *> movie.mpeg

cat movie.mpeg.0 *> movie.mpeg


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

Это все хорошо, но какое это имеет отношение к стандартному вводу? Пока ничего, но давайте попробуем что-нибудь еще. Что произойдет, если мы введем «кот» без аргументов:



[я @ linuxbox ~] $ кошка

[я @ linuxbox ~] $ кошка


Ничего не происходит, просто сидит как висит. Может показаться, что это так, но на самом деле он делает именно то, что должен.

If кошка не получает никаких аргументов, он читает со стандартного ввода, и поскольку стандартный ввод по умолчанию прикреплен к клавиатуре, он ждет, когда мы что-то напечатаем! Попробуйте добавить следующий текст и нажмите Enter:

Перенаправление стандартного ввода


[я @ linuxbox ~] $ кошка

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.

[я @ linuxbox ~] $ кошка

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.


Затем введите Ctrl-d (например, удерживая клавишу Ctrl и нажимая «d»), чтобы указать кошка что он достиг конец файла (EOF) на стандартном вводе:



[я @ linuxbox ~] $ кошка

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.

[я @ linuxbox ~] $ кошка

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.


В отсутствие аргументов имени файла кошка копирует стандартный ввод в стандартный вывод, поэтому мы видим, что наша строка текста повторяется. Мы можем использовать это поведение для создания коротких текстовых файлов. Допустим, мы хотели создать файл с именем «lazy_dog.txt», содержащий текст из нашего примера. Мы бы сделали это:



[я @ linuxbox ~] $ кошка> lazy_dog.txt

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.

[я @ linuxbox ~] $ кошка> lazy_dog.txt

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.


Введите команду, а затем текст, который мы хотим поместить в файл. Не забудьте ввести Ctrl-d в конце. Используя командную строку, мы реализовали самый тупой текстовый процессор в мире! Чтобы увидеть наши результаты, мы можем использовать кошка чтобы снова скопировать файл в стандартный вывод:


[я @ linuxbox ~] $ кошка lazy_dog.txt

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.

[я @ linuxbox ~] $ кошка lazy_dog.txt

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.


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



[я @ linuxbox ~] $ кошка <lazy_dog.txt

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.

[я @ linuxbox ~] $ кошка <lazy_dog.txt

Быстрая, коричневая лиса, перепрыгнула через ленивого пса.


Используя оператор перенаправления «<», мы меняем источник стандартного ввода с клавиатуры на файл. lazy_dog.txt. Мы видим, что результат такой же, как при передаче одного аргумента имени файла. Это не особенно полезно по сравнению с передачей аргумента имени файла, но служит для демонстрации использования файла в качестве источника стандартного ввода. Как мы скоро увидим, другие команды лучше используют стандартный ввод.


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


Лучшие облачные вычисления для ОС в OnWorks: