Bash: Добавить к файлу

Bash: Добавить к файлу

При работе с 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

Другой способ добавить текст в файл — использовать документ Here (Heredoc). Это тип перенаправления, позволяющий передать команде несколько строк ввода.

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

 cat << EOF >> file.txt The current working directory is: $PWD You are logged in as: $(whoami) EOF

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

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

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

Добавить к файлу с помощью команды tee

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

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

терминал bash

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *