DevGang
Авторизоваться

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

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

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

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

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

Синтаксис

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

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

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

cat --help

Или, вы можете использовать:

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 содержит:

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 для записи текста в файлы, проверки содержимого, объединения и добавления файлов, а также для перечисления строк и их сортировки.

Источник:

#Command Line #Linux
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

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

Попробовать

Оплатив хостинг 25$ в подарок вы получите 100$ на счет

Получить