📷 Как добавить текст в конец файла в Linux

by itisgood

В этом уроке мы изучаем различные способы добавления текста в конец файла в Linux.

Вы можете добиться этого, используя несколько методов в Linux, но самый простой – перенаправить вывод команды на желаемое имя файла. Используя символ >>, вы можете вывести результат любой команды в текстовый файл.

Другие способы достижения этого – использование инструментов Linux, таких как tee, awk и sed.

Перенаправить вывод команды или данных в конец файла


Каждая операционная система на основе Unix имеет концепцию «места по умолчанию для вывода».

Каждый называет это «стандартный вывод» или «stdout», произносится как standard out.

Ваша оболочка (вероятно, bash или zsh) постоянно следит за местом вывода по умолчанию.

Когда ваша оболочка видит новый вывод, она выводит его на экран, чтобы вы могли его увидеть.

Мы можем перенаправить этот вывод в файл, используя оператор >>.

Процедура выглядит следующим образом:

Добавить текст в конец файла с помощью команды echo:

echo 'sample text line' >> filename.txt

Добавить вывод команды в конец файла:

command >> filename.txt

Добавление строк в конец файла

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

Используя этот метод, файл будет создан, если его не существует.

$ echo "sample line" >> test.txt
$ cat test.txt 
sample line

$ echo "sample line 2" >> test.txt
$ cat test.txt 
sample line
sample line 2

Добавление результата вывода данных команды в конец файла

Вы также можете добавить данные или запустить команду и добавить вывод в нужный файл.

В этом примере мы будем использовать date для добавления текущей даты в файл, команда uname – которая выведет версию ядра используемой нами системы Linux, и, наконец, команда ls, которая выводит текущую структуру каталогов и список файлов.

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

$ date >> test.txt 
$ cat test.txt 
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019


$ uname -r >> test.txt 
$ cat test.txt 
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019
3.13.0-170-generic


$ ls >> test.txt 
$ cat test.txt 
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019
3.13.0-170-generic
test.txt

Альтернативные методы

Давайте посмотрим, как добавить что-либо в файл с помощью утилиты tee, awk и sed Linux.

Использование инструмента командной строки tee

Команда Tee читает стандартный ввод и записывает его как в стандартный вывод, так и в один или несколько файлов.

Команда названа в честь Т-разветвителя, используемого в сантехнике.

Он прерывает вывод программы, так что вывод может быть отображен и сохранен в файле.

$ tee -a test.txt <<< "appended line of text"
vagrant@ubuntu-trusty-64:~$ cat test.txt 
appended line of text

Использование инструмента командной строки awk

Awk – это утилита, которая позволяет программисту писать крошечные, но эффективные программы в форме операторов, определяющих текстовые шаблоны, которые нужно искать в каждой строке документа, и действие, которое нужно предпринять, когда совпадение найдено.

Awk в основном используется для сканирования и обработки шаблонов.

$ awk 'BEGIN{ printf "another text line appended" >> "test.txt"  }'
vagrant@ubuntu-trusty-64:~$ cat test.txt 
another text line appended

Использование инструмента командной строки sed

Команда Sed в Linux расшифровывается как потоковый редактор (stream editor) и может выполнять множество функций с файлом, таких как поиск, поиск и замена, вставка или удаление.

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

$ sed -i '$a yet another text line' test.txt
vagrant@ubuntu-trusty-64:~$ cat test.txt 
yet another text line

Добавить несколько строк в файл

Есть несколько способов добавить несколько строк в файл одновременно.

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

$ echo "line 1" >> result.txt
$ echo "line 2" >> result.txt

Следующий вариант – ввести новую строку в терминале:

echo "line 1
line 2
line 3" >> result.txt

Другой способ – открыть файл и писать строки, пока вы не наберете EOT:

$ cat <<EOT >> result.txt
line 1
line 2
EOT

Заключение

Хотя есть несколько способов добавить текстовые строки или данные и вывод команд в файл, мы увидели, что самый простой способ – это использовать >> символ перенаправления.

Есть способы добавить текст к концу определенного номера строки в файле или в середине строки с помощью регулярных выражений, но мы рассмотрим это в другой статье.

Дайте нам знать, какой метод для добавления в конец файла вы считаете лучшим в разделе комментариев.

Делить комментариями и добавляйте статьи в соц. сети, если они вам нравятся!

You may also like

Leave a Comment