- Writing to Files Using cat Command on Linux
- cat Command Basics
- Syntax
- Displaying File Contents on the Standard Output
- Writing Text to a File Using cat
- Concatenating Files with cat
- Free eBook: Git Essentials
- Standard Input Between Files
- Appending Files with cat
- Concatenating Contents of all Files Directory with cat
- Enumerating Line Numbers
- Write $ at the End of Every Line
- Sorting Lines of Concatenated Files by Piping
- Conclusion
- Запись в файлы с помощью команды cat в Linux
- Основы команд cat
- Синтаксис
- Отображение содержимого файла на стандартном выводе
- Запись текста в файл с помощью cat
- Объединение файлов с помощью cat
- Стандартный ввод между файлами
- Добавление файлов с помощью cat
- Объединение содержимого всего каталога файлов с помощью cat
- Перечисление номеров строк
- Напишите $ в конце каждой строки
- Сортировка строк составных файлов по конвейеру
- Вывод
- Источник:
Writing to Files Using cat Command on Linux
The cat command is a Unix tool used for manipulating and displaying file contents. The command gets its name from the word «concatenate» because it has, among other things, the ability to concatenate files.
In this article, we’ll go through a few easy ways to use this command to write text to a file with examples. Using cat is very straightforward, so no prior programming or Unix experience is needed to follow along.
cat Command Basics
Starting, we’ll just sum up the basics of the cat command to help you out if you’ve never used it before or need a brief overview.
Syntax
The syntax looks like this:
To quickly look up the syntax or command options, run cat with the help option:
Or, you can use the manual pages:
These commands should display the following list of options:
-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
Displaying File Contents on the Standard Output
To print the contents of a file to the standard output just name the file you want to display:
If the file is in a different directory, you’ll have to navigate to it:
We’ll be expecting to see the contents of this file, printed to the standard output, in this case — the terminal:
This is the most common use of the cat command since it makes it easy to peek into the contents of a file without opening a text editor.
Writing Text to a File Using cat
To redirect the output of the cat command from the standard output to a file, we can use the output redirection operator > :
This will overwrite the contents of filename2 with the contents of filename1 , so make sure that filename2 doesn’t contain anything you would mind losing. Now, filename2 contains:
The output redirection operator will redirect the output of any command we call. For example, let’s try it out with the pwd command, which prints the name of the current working directory:
If we take a look at the testfile now:
It contains the current working directory’s path:
If the file you are redirecting to doesn’t exist, a file by that name will be created:
$ cat filename1 > newfilename
Concatenating Files with cat
Concatenating multiple files using cat is simple — just list the files in the desired order:
Free eBook: Git Essentials
Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!
$ cat filename1 filename2 > outputfile $ cat outputfile
This takes the filename1 and filename2 files, concatenates them, and outputs the into a new outputfile :
Content of filename1! Content of filename2!
Standard Input Between Files
When the name of the input file isn’t listed, cat starts reading from the standard input until it reaches EOF (end-of-file). The end-of-file signal is sent by the ctrl+d command line shortcut:
$ cat > outputfile Hello World $ cat outputfile
We can even add text from the standard input in between files we wish to concatenate by using — to indicate where we expect standard input. If we have files such as filename1 , filename2 , and filename3 , and we want some text from the standard input in between filename1 and filename2 , we would write:
$ cat filename1 - filename2 filename3 > output Text from standard input! $ cat output
Checking output , we’ll see something along the lines of:
Content of filename1! Text from standard input! Content of filename2! Content of filename3!
Appending Files with cat
In the previous examples, using the redirection operator discarded the previous contents of the output file. What if we want to append the new content to the old content? To append files we use the >> operator:
$ cat filename1 filename2 >> output $ cat output
And that should result in:
Original output file contents. Content of filename1! Content of filename2!
Concatenating Contents of all Files Directory with cat
To concatenate all contents of all files in a directory, we use the wildcard * :
To concatenate all contents of all files in the current working directory, we’d use:
* can also be used to concatenate all files with the same extension:
Enumerating Line Numbers
Enumeration of all lines of output is done with the -n option:
$ cat -n filename1 filename2 filename3 > output $ cat output
Which would write something along the lines of:
1 Content of filename1! 2 Content of filename2! 3 Content of filename3!
Write $ at the End of Every Line
The -E option marks the end of every line in the file with the $ character:
$ cat -E filename1 filename2 filename3 > output $ cat output
Sorting Lines of Concatenated Files by Piping
This one is a bit of a cheat. The cat command can’t sort, but we can use piping to achieve that. The pipe command ( | ) is used to turn the output of one command into the input of another. To sort the lines of a file, we’ll use both cat and another command, called sort :
$ cat filename2 filename3 filename1 | sort > output $ cat output
Content of filename1! Content of filename2! Content of filename3!
Conclusion
Cat is a simple, yet powerful Unix tool that comes pre-installed on most systems. It can be used on its own or in combination with other commands using pipes. Originally made by Ken Thompson and Dennis Ritchie in 1971, cat ‘s easy to use and intuitive functionalities stand the test of time.
In this article, we’ve explored some of the possibilities of using the cat command to write text to files, check contents, concatenate and append files as well as enumerate lines and sort them.
Запись в файлы с помощью команды cat в Linux
Команда cat представляет собой инструмент Unix, используемый для управления и отображения содержимого файлов. Команда получила свое название от слова «concatenate», потому что, помимо прочего, она может объединять файлы.
В этой статье мы рассмотрим несколько простых способов использования этой команды для записи текста в файл с примерами. Использование cat очень простое, поэтому для продолжения работы не требуется никакого предварительного программирования или опыта работы с Unix.
Основы команд cat
Начнем с того, что мы просто опишем основы команды cat , чтобы помочь вам, если вы никогда не использовали ее раньше или вам нужен краткий обзор.
Синтаксис
Чтобы быстро найти синтаксис или параметры команды, запустите 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, поскольку она позволяет легко просматривать содержимое файла, не открывая текстовый редактор.
Запись текста в файл с помощью cat
Чтобы перенаправить вывод команды cat из стандартного вывода в файл, мы можем использовать оператор перенаправления вывода > :
Это приведет к замене содержимого filename2 на содержимое filename1 , поэтому убедитесь, что он не содержит ничего, что вы бы не хотели потерять. Теперь filename2 содержит:
Оператор перенаправления вывода перенаправит вывод любой вызываемой нами команды. Например, давайте попробуем это с помощью команды pwd , которая печатает имя текущего рабочего каталога:
Если мы посмотрим сейчас на testfile :
Он содержит путь к текущему рабочему каталогу:
Если файл, на который вы перенаправляете, не существует, будет создан файл с таким именем:
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
Мы даже можем добавить текст из стандартного ввода между файлами, которые мы хотим объединить, используя — , чтобы указать, где мы ожидаем стандартный ввод. Если у нас есть такие файлы, как 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
Чтобы объединить все содержимое всех файлов в каталоге, мы используем подстановочный знак * :
Чтобы объединить все содержимое всех файлов в текущем рабочем каталоге, мы будем использовать:
* также можно использовать для объединения всех файлов с одинаковым расширением:
Перечисление номеров строк
Перечисление всех строк вывода осуществляется с помощью опции -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 для записи текста в файлы, проверки содержимого, объединения и добавления файлов, а также для перечисления строк и их сортировки.