Запись в файлы с помощью команды cat в Linux

Введение Команда cat - это инструмент Unix, используемый для управления и отображения содержимого файлов. Команда получила свое название от слова «объединить», потому что, помимо прочего, она имеет возможность объединять файлы. В этой статье мы рассмотрим несколько простых способов использования этой команды для записи текста в файл с примерами. Использование cat очень просто, поэтому не требуется никакого предварительного программирования или опыта работы с Unix. cat Основы работы с командами Начиная, мы просто подведем итог основам

Вступление

Команда cat - это инструмент Unix, используемый для управления и отображения содержимого файлов. Команда получила свое название от слова «con cat enate», потому что, помимо прочего, она может объединять файлы.

В этой статье мы рассмотрим несколько простых способов использования этой команды для записи текста в файл с примерами. Использовать cat очень просто, поэтому для продолжения работы не требуется никакого предварительного программирования или опыта работы с Unix.

Основы команд cat

Вначале мы просто суммируем основы команды cat чтобы помочь вам, если вы никогда не использовали ее раньше или вам нужен краткий обзор.

Синтаксис

Синтаксис выглядит так:

 cat [OPTION]... [FILE]... 

Чтобы быстро найти синтаксис или параметры команды, запустите cat с параметром справки:

 $ cat --help 

Или, вы можете использовать искусственные UAL страницы:

 $ man cat 

Эти команды должны отображать следующий список параметров:

 -A, --show-all equivalent to -vET 
 -b, --number-nonblank number nonempty output lines, overrides -n 
 -e equivalent to -vE 
 -E, --show-ends display $ at end of each line 
 -n, --number number all output lines 
 -s, --squeeze-blank suppress repeated empty output lines 
 -t equivalent to -vT 
 -T, --show-tabs display TAB characters as ^I 
 -u (ignored) 
 -v, --show-nonprinting use ^ and M- notation, except for LFD and TAB 
 --help display this help and exit 
 --version output version information and exit 

Отображение содержимого файла на стандартном выводе

Чтобы вывести содержимое файла на стандартный вывод, просто назовите файл, который хотите отобразить:

 $ cat filename1 

Если файл находится в другом каталоге, вам нужно будет перейти к нему:

 $ cat /dir1/dir2/filename1 

Мы ожидаем увидеть содержимое этого файла, распечатанное на стандартный вывод, в данном случае - терминал:

 Content of filename1! 

Это наиболее распространенное использование команды cat, поскольку она позволяет легко просматривать содержимое файла, не открывая текстовый редактор.

Запись текста в файл с помощью cat

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

 $ cat filename1 > filename2 

Это перезапишет содержимое filename2 содержимым filename1 , поэтому убедитесь, что filename2 не содержит ничего, что вы могли бы потерять. Теперь filename2 содержит:

 Content of filename1! 

Оператор перенаправления вывода перенаправит вывод любой вызываемой нами команды. Например, давайте попробуем это с помощью pwd , которая выводит имя текущего рабочего каталога:

 $ pwd > testfile 

Если мы сейчас посмотрим на testfile :

 $ cat testfile 

Он содержит путь к текущему рабочему каталогу:

 /home/kristina 

Если файл, на который вы перенаправляете, не существует, будет создан файл с таким именем:

 $ cat filename1 > newfilename 

Объединение файлов с помощью cat

Объединить несколько файлов с помощью cat очень просто - просто перечислите файлы в желаемом порядке:

 $ cat filename1 filename2 > outputfile 
 $ cat outputfile 

Это берет filename1 и filename2 , объединяет их и выводит в новый outputfile :

 Content of filename1! 
 Content of filename2! 

Стандартный ввод между файлами

Когда имя входного файла не указано, cat начинает чтение со стандартного ввода, пока не достигнет EOF (конца файла). Сигнал о конце файла отправляется ctrl+d командной строке:

 $ cat > outputfile 
 Hello 
 World 
 $ cat outputfile 

Это выведет:

 Hello 
 World 

Мы даже можем добавить текст из стандартного ввода между файлами, которые мы хотим объединить, используя - чтобы указать, где мы ожидаем стандартный ввод. Если у нас есть такие файлы, как filename1 , filename2 и filename3 , и нам нужен некоторый текст из стандартного ввода между filename1 и filename2 , мы должны написать:

 $ cat filename1 - filename2 filename3 > output 
 Text from standard input! 
 $ cat output 

Проверяя output , мы увидим что-то вроде:

 Content of filename1! 
 Text from standard input! 
 Content of filename2! 
 Content of filename3! 

Добавление файлов с помощью cat

В предыдущих примерах использование оператора перенаправления отбрасывало предыдущее содержимое output файла. Что, если мы хотим добавить новый контент к старому? Для добавления файлов мы используем оператор >>

 $ cat filename1 filename2 >> output 
 $ cat output 

И это должно привести к:

 Original output file contents. 
 Content of filename1! 
 Content of filename2! 

Объединение содержимого всего каталога файлов с помощью cat

Чтобы объединить все содержимое всех файлов в каталоге, мы используем подстановочный знак * :

 $ cat /dir1/dir2/* > output 

Чтобы объединить все содержимое всех файлов в текущем рабочем каталоге, мы будем использовать:

 $ cat * > output 

* также можно использовать для объединения всех файлов с одинаковым расширением:

 $ cat *.txt > output 

Перечисление номеров строк

Перечисление всех строк вывода выполняется с помощью опции -n

 $ cat -n filename1 filename2 filename3 > output 
 $ cat output 

Который мог бы написать что-то вроде:

 1 Content of filename1! 
 2 Content of filename2! 
 3 Content of filename3! 

Напишите $ в конце каждой строки

Параметр -E отмечает конец каждой строки в файле символом $

 $ cat -E filename1 filename2 filename3 > output 
 $ cat output 

Сортировка строк составных файлов по конвейеру

Это немного обман. Команда cat не может выполнять сортировку, но для этого мы можем использовать конвейер. Команда канала ( | ) используется для преобразования вывода одной команды во ввод другой. Чтобы отсортировать строки файла, мы будем использовать как cat и другую команду под названием sort :

 $ cat filename2 filename3 filename1 | sort > output 
 $ cat output 

Это приводит к:

 Content of filename1! 
 Content of filename2! 
 Content of filename3! 

Заключение

Cat - это простой, но мощный инструмент Unix, который предустановлен в большинстве систем. Его можно использовать отдельно или в сочетании с другими командами с помощью каналов. Первоначально созданный Кеном Томпсоном и Деннисом Ритчи в 1971 году, простой в использовании и интуитивно понятный функционал cat

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

comments powered by Disqus