1 авг. 2008 г.

cat: управление файлами

позволяет сливать несколько файлов в один и называется cat, сокращение от concatenate.
Кроме того, при помощи команды cat можно вывести на экран содержимое указанного файла. Для этого введите
cat <имя_файла>
Если указанный файл очень длинный, его содержимое быстро промелькнет по экрану. Чтобы предотвратить быструю прокрутку, введите
cat <имя_файла> | less
В этом примере команда cat соединена каналом (|) с командой less, что позволяет вывести содержимое файла постранично. Используйте клавиши со стрелками, чтобы листать страницы вперед и назад.

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


Перенаправление означает, что система должна использовать файл или устройство, указанное пользователем, вместо стандартного ввода или стандартного вывода.
Чтобы перенаправить стандартный вывод, используйте символ >. Размещение > после команды cat (или после любой другой команды, которая выдает результаты своей работы на стандартный вывод) перенаправит результат ее работы в файл, указанный за символом >.
Использование команды cat без аргументов приведет к тому, что все, что вы будете вводить в командной строке, после нажатия клавиши [Enter] будет еще раз отображаться на экране:
[user@localhost ~]$ cat
line 1
line 1
line 2
line 2
line 3
line 3
Чтобы перенаправить результаты работы команды cat в файл, введите в командной строке
cat > example1.txt
Последующее нажатие клавиши [Enter] приведет к появлению пустой строки.
Введите несколько строк текста. Для перехода к следующей пустой строке используйте клавишу [Enter], для выхода из cat используйте комбинацию клавиш [Ctrl]-[D].
В следующем примере три строки текста перенаправлены в файл с названием example1.txt:
[user@localhost ~]$ cat > example1.txt
line 1
line 2
line 3
Как было сказано выше, команду cat можно использовать, чтобы прочесть файл:
[user@localhost ~]$ cat example1.txt
line 1
line 2
line 3
Используем перенаправление вывода для другого файла, назовем его example2.txt:
[user@localhost ~]$ cat > example2.txt
line a
line b
line c
Затем при помощи команды cat добавим содержимое файла example2.txt в конец файла example1.txt и перенаправим результат в новый файл с названием model.txt:
[user@localhost ~]$ cat example1.txt example2.txt > model.txt
Просмотрим содержимое файла model.txt с помощью команды cat:
[user@localhost ~]$ cat model.txt
line 1
line 2
line 3
line a
line b
line c
[Caution]Предостережение
Будьте осторожны с перенаправлением в файл, так как при этом можно переписать существующий файл! Убедитесь, что имя файла, которое вы задаете, не совпадает ни с каким из существующих файлов, если только вы не хотите заменить содержимое существующего файла.

Дополнение стандартным выводом


Вы можете использовать перенаправление вывода, чтобы добавлять информацию в конец существующего файла. Так же, как при использовании символа >, вы передадите системе указание направить информацию не в стандартный вывод, а в указанный вами файл.
Однако, когда вы используете двойной символ >>, вы добавляете информацию в файл, а не заменяете его содержимое полностью.
Возьмем два уже существующих файла (example1.txt и example2.txt) и объединим их, используя символ добавления. Чтобы добавить содержимое файла example2.txt в файл example1.txt, введите:
cat example2.txt >> example1.txt
Теперь при помощи команды cat example1.txt просмотрим содержимое последнего файла, и увидим, что содержимое файла example2.txt было добавлено в конец файла example1.txt:
[user@localhost ~]$ cat example2.txt >> example1.txt
[user@localhost ~]$ cat example1.txt
line 1
line 2
line 3
line a
line b
line c
Введенная нами команда добавила вывод текста из файла example2.txt к файлу example1.txt.
Добавляя результаты к уже существующему файлу, а не создавая новый, вы экономите время и немного дискового пространства.
Сравнив содержимое файлов example1.txt и model.txt, вы увидите, что они идентичны. Чтобы произвести сравнение, введите:
cat example1.txt; cat model.txt
На экран будет выведено содержимое сначала файла example2.txt, а затем файла model.txt:
[user@localhost ~]$ cat example1.txt; cat model.txt
line 1
line 2
line 3
line a
line b
line c
line 1
line 2
line 3
line a
line b
line c
Для сравнения файлов можно также воспользоваться командой diff:
[user@localhost ~]$ diff example1.txt model.txt
[user@localhost ~]$
Поскольку файлы идентичны, работа команды diff закончится выводом на экран приглашения командной строки.

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


Можно перенаправить не только стандартный вывод, но и стандартный ввод.
Когда вы используете символ перенаправления стандартного ввода <, вы сообщаете оболочке, что входные данные для программы следует брать из указанного вами файла.
Используем уже созданные файлы, чтобы показать, как работает этот механизм. Введите:
cat <>
Так как вы использовали символ меньше (<), чтобы отделить команду cat от имени файла, команда cat прочитает содержимое файла example1.txt.
[user@localhost ~]$ cat < example1.txt
line 1
line 2
line 3
line a
line b
line c

Комментариев нет: