Одна из наиболее распространенных задач при написании сценариев Bash или работе в командной строке Linux - это чтение и запись файлов.
В этой статье объясняется, как записать текст в файл в Bash, используя операторы перенаправления и тройник
команда.
Запись в файл с использованием операторов перенаправления #
В Bash перенаправление вывода позволяет вам захватить вывод команды и записать его в файл.
Общий формат перенаправления и записи вывода в файл следующий:
вывод> имя файла вывод >> имя файла
- В
>
оператор перенаправления записывает вывод в указанный файл. Если файл существует, он обрезается до нулевой длины. В противном случае файл создается. Будьте особенно осторожны при использовании этого оператора, так как вы можете перезаписать важный файл. - В
>>
оператор перенаправления добавляет вывод в указанный файл. Если файл не существует, создается.
У вас должны быть права на запись в файл. В противном случае вы получите сообщение об ошибке в разрешении отказано.
Вот простой пример, показывающий, как перенаправить вывод эхо
команду в файл:
echo "это строка"> файл.текст
Чтобы предотвратить перезапись существующих файлов, включите опцию «noclobber» с помощью набор
встроенный:
установить -o noclobber
echo "это строка"> файл.текст
bash: файл.txt: невозможно перезаписать существующий файл
В > |
Оператор позволяет вам переопределить параметр Bash «noclobber»:
установить -o noclobber
echo "это строка"> | файл.текст
В >>
оператор добавляет вывод в конец файла, а не перезаписывает файл:
echo "это строка" >> файл.текст
Использовать printf
команда для создания сложного вывода:
printf "Привет, я% s.\ n "$ USER> файл.текст
Если вы хотите записать несколько строк в файл, используйте перенаправление документа Here (Heredoc).
Например, вы можете передать контент в Кот
команду и запишите ее в файл:
Кот << EOF > файл.txt Текущий рабочий каталог: $ PWD Вы вошли в систему как $ (whoami) EOF
Чтобы добавить строки, измените >
с участием >>
перед именем файла:
Кот << EOF >> файл.txt Текущий рабочий каталог: $ PWD Вы вошли в систему как $ (whoami) EOF
Вы можете записать вывод любой команды в файл:
date + "Год:% Y, Месяц:% m, День:% d"> файл.текст
Выход Дата
команда будет записана в файл.
Запись в файл с помощью тройник
Команда #
В тройник
команда читает из стандартного ввода и записывает как в стандартный вывод, так и в один или несколько файлов одновременно.
эхо "это линия" | тройник.текст
В тройник
по умолчанию команда перезаписывает указанный файл, как и >
оператор. Чтобы добавить вывод в файл, вызовите команду с -а
(--добавить
) вариант:
эхо "это линия" | tee -a файл.текст
Если ты не хочешь тройник
для записи на стандартный вывод вы можете перенаправить его на / dev / null
:
эхо "это линия" | тройник.txt> / dev / null
Чтобы записать текст в несколько файлов, укажите файлы в качестве аргументов для тройник
команда:
эхо "это линия" | тройник file_1.txt file_2.txt file_3.текст
Еще одно преимущество тройник
команда заключается в том, что вы можете использовать ее вместе с судо
и писать в файлы, принадлежащие другим пользователям. Чтобы добавить текст в файл, в который у вас нет прав на запись, добавьте судо
перед тройник
:
эхо "это линия" | файл sudo tee.текст
В эхо
вывод команды передается как ввод в тройник
, который повышает разрешения sudo и записывает текст в файл.
Заключение #
В Linux для записи текста в файл используйте >
а также >>
операторы перенаправления или тройник
команда.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.