Cat

Программа cat предназначена для объединения файлов.

cat [параметры] [файл]...

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

При помощи программы рекомендуется просматривать только небольшие файлы, т.к. при просмотре большого файла вы увидите только его последние строки. Даже если пользоваться буфером терминала (Для перемещения по буферу терминала используются комбинации клавиш Ctrl+PgUp и Ctrl+PgDn), некоторые файлы настолько большие, что не помещаются в него целиком и будут видны только последние строки файла.

Для того, что бы посмотреть содержимое файла /etc/hosts, необходимо выполнить следующую команду:

$ cat /etc/hosts
# For loopbacking.
127.0.0.1               localhost
10.10.107.20            master.class.unix master
# End of hosts.
$

У программы cat есть много других параметров. Мы рассмотрим только три:

  • –b — при выводе файла программа нумерует строки.
  • –E — в конце строки выводится символ $.
  • –T — вместо символа табуляции выводятся символы ^I.
Внимание! Вы должны запомнить, что cat, как и большинство рассматриваемых программ, не будет изменять содержимое файла. То есть файл — это источник данных, а результат работы программы выводится только на экран терминала.

Явное обозначение конца строки — это серьезная проблема в мире UNIX. Иногда встречаются программы некорректно обрабатывающие свои конфигурационные файлы, параметры в файле написаны правильно, а программа выдает сообщение об ошибке в строке. Проблема в лишних пробелах, которые могут присутствовать в конце строки (привет от индусских кодеров). Такие пробелы обнаружить достаточно трудно, ведь этот символ никак не отображается в большинстве редакторов и программ показывающих содержимое текстовых файлов. В обнаружении лишних пробелов в конце строки поможет программа cat.

$ cat -E /etc/hosts
# For loopback# For loopbacking.
127.0.0.1               localhost$
10.10.107.20            master.class.unix master$
$
# End of hosts.$
$

Если после последнего параметра в конце строки перед символом $ есть пробелы, они будут видны.

Параметр –T помогает обнаружить, где в тексте стоят символы табуляции. Например, в Linux в конфигурационном файле системы отвечающей за журнальную регистрацию (syslog) поля в строке отделяются символом табуляции и только им. Если среди табуляций будет введен хотя бы один пробел, программа будет выдавать сообщение об ошибке. Табуляции, как и пробелы, тоже никак не отображаются в редакторах. Если пропустить такой конфигурационный файл через cat с параметром –T, сразу будут видны лишние пробелы.