В Bash есть несколько способов добавить текст в файл. Эта статья объясняет некоторые из них.
Чтобы добавить текст в файл, вам необходимо иметь права на запись в него. В противном случае вы получите ошибку «permission denied».
Добавить в файл с помощью оператора перенаправления ( >>)
Перенаправление позволяет вам захватывать выходные данные из команды и отправлять их в качестве входных данных для другой команды или файла. Оператор перенаправления >> добавляет вывод к данному файлу.
Есть несколько команд, которые можно использовать для печати текста на стандартный вывод и перенаправить его в файл: команды echo и printf наиболее используемые из них.
Чтобы добавить текст в файл, укажите имя файла после оператора перенаправления:
echo "это новая строка" >> file.txt
При использовании с параметром -e команда echo интерпретирует символы с обратной косой чертой, такие как символ новой строки \n:
echo -e "это новая строка \nэто еще одна новая строка" >> 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 "это новая строка" | tee -a file.txt
Если вы не хотите tee использовать в стандартном выводе, перенаправьте его на /dev/null:
echo "это новая строка" | tee -a file.txt >/dev/null
Преимущество использования команды tee над оператором >> заключается в том, что tee вы можете добавлять текст в несколько файлов одновременно и записывать файлы, принадлежащие другим пользователям вместе с sudo.
Чтобы добавить текст в файл, на который вы не имеете права на запись, добавьте sudo до tee как показано ниже:
echo "это новая строка" | sudo tee -a file.txt
tee получает выходные данные команды echo, повышает разрешения sudo и записывает в файл.
Чтобы добавить текст в несколько файлов, укажите эти файлы в качестве аргументов команды tee:
echo "это новая строка" | tee -a file1.txt file2.txt file3.txt
Вывод
В Linux, чтобы добавить текст в файл, используйте оператор >> перенаправления или команду tee.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.