Как да пиша във файл в 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 Въведете вашето име
прочетено име
echo $ name> data_dir.txt
echo Въведете възрастта си
прочетете възраст
echo $ age >> data_dir.txt
cat data_dir.txt

The котка команда се използва за създаване и редактиране на файлове. Запазете горния скрипт във Vim, като превключите в режим след натискане на Esc ключ и след това въведете : в myscript.sh . Отворете терминала и стартирайте кода:

Как да напиша файл с помощта на Heredoc

Ако искате да напишете няколко реда, тогава най -лесният метод е използването на Heredoc. Тук документът, известен също като Heredoc, е многофункционален кодов блок. Синтаксисът на Heredoc е:

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

Разделител

Всеки низ може да се използва на мястото на Разделител и - също може да се използва за премахване на всички раздели в раздела във файла. Нека го разберем, използвайки прост пример:

#! /bin/bash

котка<< TEXTFILE
Това е текстов файл.
Този файл е създаден с помощта на heredoc.
ТЕКСТФИЛ

Горната команда cat cat създава текстов файл с името TEXTFILE и записва текст в току -що създадения файл. Сега запишете файла с името на myscript.sh . Стартирайте терминала и стартирайте скрипта.

Как да напиша файл с помощта на командата Tee

Друг метод за запис на файл е използването на командата Tee. Като име, което указва, тази команда приема вход и записва във файл и показва изход едновременно. По подразбиране командата Tee ще презапише съществуващите данни.

$ echo Това е текст | tee textfile.txt

За да добавите използване –a:

$ echo Това е друг текст | tee - текстов файл.txt

За да напишете няколко реда, използвайте:

$ echo Добавяне на текст към множество файлове | tee textfile1.txt textfile2.txt textfile3.txt

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

Заключение

Това ръководство се фокусира върху множество подходи за писане във файл на bash с примери. В bash скриптовете има няколко начина за писане на файл, но най -простият е използването на оператори за пренасочване>, >>. За да напишете няколко реда, може да се използва heredoc и ако искате да напишете едни и същи данни в няколко реда, тогава командата tee е доста удобна.