Как записать в файл в Bash

How Write File Bash



Одна из основных задач, которые мы выполняем при работе со сценариями bash, - это чтение и запись файлов. В этом руководстве мы сосредоточимся на том, как читать файлы в bash и как их редактировать.

Существует несколько способов чтения и записи файла в bash. Самый простой способ - использовать операторы> и >>.







  • > оператор перезапишет существующие данные
  • >> оператор добавит данные

Общий формат использования операторов перенаправления:



Данные> Имя файла
Данные >> Имя файла

Давайте разберемся с записью в файловую процедуру на примере:



Как записать файл с помощью операторов перенаправления

Как обсуждалось выше, простой и понятный подход к записи в файл заключается в использовании операторов перенаправления. Например, если вы хотите изменить текст уже существующего файла, сначала создайте текстовый файл с именем testfile.txt и напишите в нем что угодно:





Сохраните текстовый файл.



Введите в терминале указанную ниже команду:

$ echo Перезапись существующего текста в файле> testfile.txt

Чрезмерное отжимание может быть рискованным; поэтому рекомендуется включать noclobber. Установка noclobber заблокирует любую перезапись любого существующего файла.

$ set –o noclobber
$ echo Перезапись существующего текста в файле> testfile.txt

Но если вы хотите обойти noclobber, используйте > | оператор вместо > :

$ echo Перезапись существующего текста в файле> | testfile.txt

Или вы можете просто отключить noclobber:

$ set + или noclobber

Но эта команда снимет защиту со всех файлов.

Приведенный выше вывод указывает, что существующий текст был перезаписан. Теперь давайте воспользуемся >> оператор:

$ echo Добавление текста в существующий текстовый файл >> testfile.txt

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

$ printf Добро пожаловать n Это новый текстовый файл. > newtestfile.txt

Давайте разберемся в концепции на примере сценария bash. Откройте Vim, набрав vim в терминале. Если на вашем устройстве нет редактора Vim, установите его, используя:

$ sudo apt install vim

Введите сценарий:

#! / bin / bash
эхо Введите ваше имя
читать имя
echo $ name> data_dir.txt
эхо Введите свой возраст
читать возраст
echo $ age >> data_dir.txt
cat data_dir.txt

В Кот команда используется для создания и редактирования файлов. Сохраните приведенный выше скрипт в Vim, переключив режим после нажатия кнопки Esc ключ, а затем введите : в myscript.sh . Откройте терминал и запустите код:

Как написать файл с помощью Heredoc

Если вы хотите написать несколько строк, то самый простой способ - использовать Heredoc. Здесь документ, также известный как Heredoc, представляет собой многоцелевой блок кода. Синтаксис Heredoc:

Командование<<[-] Delimiter
.
текст / команды
.

Разделитель

Вместо разделителя можно использовать любую строку, а - также можно использовать для удаления любых пробелов табуляции в файле. Давайте разберемся с этим на простом примере:

#! / bin / bash

Кот<< TEXTFILE
Это текстовый файл.
Этот файл создан с использованием heredoc.
ТЕКСТОВЫЙ ФАЙЛ

Приведенная выше команда сценария cat создает текстовый файл с именем TEXTFILE и записывает текст в только что созданный файл. Теперь сохраните файл под именем myscript.sh . Запускаем терминал и запускаем скрипт.

Как записать файл с помощью команды Tee

Другой метод записи файла - использование команды Tee. Как указывает имя, эта команда принимает ввод и записывает в файл и одновременно показывает вывод. По умолчанию команда Tee перезапишет существующие данные.

$ echo Это какой-то текст | тройник textfile.txt

Чтобы добавить, используйте –a:

$ echo Это еще один текст | tee –a textfile.txt

Чтобы написать несколько строк, используйте:

$ echo Добавление текста в несколько файлов | tee textfile1.txt textfile2.txt textfile3.txt

Приведенная выше команда создаст три файла, если они не существуют, и напишет текст в каждый из них.

Заключение

В этом руководстве основное внимание уделяется нескольким подходам к записи в файл в bash с примерами. В сценариях bash существует несколько способов записи файла, но самый простой - использовать операторы перенаправления>, >>. Для записи нескольких строк можно использовать heredoc, и если вы хотите записать одни и те же данные в несколько строк, то команда tee весьма удобна.