Как добавить текст в файл с помощью Bash в Linux

12 set 2022 2 min di lettura
Как добавить текст в файл с помощью Bash в Linux
Indice dei contenuti

Введение

В Bash есть несколько способов добавить текст в файл. В этой статье описаны некоторые из них.

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

Используйте оператор перенаправления >>

Перенаправление позволяет получать выходные данные одной команды и отправлять их в качестве входных данных другой команде или файлу. Оператор перенаправления >> добавляет вывод в указанный файл.

Существует ряд команд, которые вы можете использовать для вывода текста на стандартный вывод и перенаправления его в файл, наиболее часто используемыми являются команды echo и printf.

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

echo "this is a new line" >> file.txt

При использовании с параметром -e команда echo интерпретирует экранированные символы обратной косой черты как символ новой строки \n:

echo -e "this is a new line \nthis is another new line" >> file.txt

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

printf "Hello, I'm %s.\n" $USER >> file.txt

Вы можете добавить вывод любой команды в файл. Вот пример с командой date:

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

При добавлении файла в перенаправление будьте осторожны и не используйте оператор >, который перезаписывает существующий файл.

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

tee — это утилита командной строки в Linux, которая одновременно читает из стандартного ввода и записывает как в стандартный вывод, так и в один или несколько файлов.

По умолчанию команда tee перезаписывает указанный файл. Чтобы добавить вывод в файл, используйте tee с параметром -a ( --append ):

echo "this is a new line" | tee -a file.txt

Если вы не хотите, чтобы tee писал в стандартный вывод, перенаправьте его в /dev/null:

echo "this is a new line" | tee -a file.txt >/dev/null

Преимущество использования команды tee вместо оператора >> заключается в том, что tee позволяет добавлять текст сразу в несколько файлов и записывать в файлы, принадлежащие другим пользователям, вместе с sudo.

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

echo "this is a new line" | sudo tee -a file.txt

tee получает вывод команды echo и с разрешениями sudo записывает в файл.

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

echo "this is a new line" | tee -a file1.txt file2.txt file3.txt

Вывод

В Linux для добавления текста в файл используйте оператор перенаправления >> или команду tee.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.