Есть несколько способов чтения и записи файла в bash. Самый простой способ - использовать операторы «>» и «>>».
- Оператор «>» перезапишет существующие данные
- Оператор «>>» добавит данные
Общий формат использования операторов перенаправления:
Данные> Имя файлаДанные >> Имя файла
Разберемся с записью в файловую процедуру на примере:
Как записать файл с помощью операторов перенаправления
Как обсуждалось выше, простой и понятный подход к записи в файл заключается в использовании операторов перенаправления. Например, если вы хотите изменить текст уже существующего файла, сначала создайте текстовый файл с именем «тестовый файл.текст»И напишите в нем что угодно:
Сохраните текстовый файл.
Введите в терминале указанную ниже команду:
$ echo «Замена существующего текста в файле»> testfile.текст
Чрезмерное отжимание может быть рискованным; поэтому рекомендуется включать "noclobber". Установка «noclobber» заблокирует любую перезапись в любой существующий файл.
$ set -o noclobber$ echo «Замена существующего текста в файле»> testfile.текст
Но если вы хотите обойти "noclobber", используйте "> |Оператор "вместо">”:
$ echo «Замена существующего текста в файле»> | тестовый файл.текстИли вы можете просто отключить «noclobber»:
$ set + o noclobber
Но эта команда снимет защиту со всех файлов.
Приведенный выше вывод указывает, что существующий текст был перезаписан. Теперь давайте воспользуемся символом «>>Оператор:
$ echo «Добавление текста в существующий текстовый файл» >> testfile.текст
«эхо»Не всегда идеален для использования, поскольку вы не можете форматировать текст с его помощью, поэтому используйте« printf »вместо« echo »для форматирования текста, как показано в следующей команде:
$ printf «Добро пожаловать \ n Это новый текстовый файл.»> Newtestfile.текст
Давайте разберемся с концепцией на примере сценария bash. Откройте Vim, набрав «vim» в терминале. Если на вашем устройстве нет редактора Vim, установите его, используя:
$ sudo apt install vimВведите сценарий:
#! / bin / bashecho «Введите свое имя»
читать имя
эхо $ имя> каталог_данных.текст
echo «Укажите свой возраст»
читать возраст
echo $ age >> data_dir.текст
cat data_dir.текст
Значок «Кот»Команда используется для создания и редактирования файлов. Сохраните приведенный выше сценарий в Vim, переключив режим после нажатия кнопки «EscКлавишу ", а затем введите": w myscript.ш”. Откройте терминал и запустите код:
Как написать файл с помощью Heredoc
Если вы хотите написать несколько строк, то самый простой способ - использовать «Heredoc». Здесь документ, также известный как «Heredoc», представляет собой многоцелевой блок кода. Синтаксис Heredoc:
Командование <<[-] Delimiter.
текст / команды
.
Разделитель
Вместо «Разделителя» можно использовать любую строку, а «-» также можно использовать для удаления любых пробелов табуляции в файле. Давайте разберемся с этим на простом примере:
#! / bin / bashКот << TEXTFILE
Это текстовый файл.
Этот файл создан с использованием heredoc.
ТЕКСТОВЫЙ ФАЙЛ
Приведенная выше команда сценария «cat» создает текстовый файл с именем «TEXTFILE» и записывает текст в только что созданный файл. Теперь сохраните файл с именем «myscript.ш”. Запустить терминал и запустить скрипт.
Как записать файл с помощью команды Tee
Другой способ записать файл - использовать команду «Тройник». Как указывает имя, эта команда принимает ввод и записывает в файл и одновременно показывает вывод. По умолчанию команда «Тройник» перезаписывает существующие данные.
$ echo «Это какой-то текст» | текстовый файл tee.текст
Чтобы добавить, используйте -a:
$ echo «Это еще один текст» | tee -a текстовый файл.текст
Чтобы написать несколько строк, используйте:
$ echo «Добавление текста в несколько файлов» | tee textfile1.txt textfile2.txt textfile3.текст
Приведенная выше команда создаст три файла, если они не существуют, и напишет текст в каждый из них.
Заключение
В этом руководстве основное внимание уделяется нескольким подходам к записи в файл в bash с примерами. В сценариях bash существует несколько способов записи файла, но самый простой из них - использовать операторы перенаправления «>», «>>». Для записи нескольких строк можно использовать «heredoc», а если вы хотите записать одни и те же данные в несколько строк, то команда «tee» весьма удобна.