Hoe te schrijven naar een bestand in Bash

How Write File Bash



Een van de essentiële taken die we doen tijdens het werken met bash-scripting is het lezen en schrijven van bestanden. In deze handleiding zullen we ons concentreren op het lezen van bestanden in bash en het bewerken ervan.

Er zijn meerdere manieren om een ​​bestand in bash te lezen en te schrijven. De eenvoudigste manier is het gebruik van de operatoren > en >>.







  • > operator zal de bestaande gegevens overschrijven
  • >> operator voegt gegevens toe

De algemene indeling voor het gebruik van omleidingsoperatoren is:



Gegevens > Bestandsnaam
Gegevens >> Bestandsnaam

Laten we de procedure voor het schrijven naar een bestand begrijpen met een voorbeeld:



Een bestand schrijven met omleidingsoperatoren

Zoals hierboven besproken, is de eenvoudige en ongecompliceerde benadering van het schrijven naar een bestand het gebruik van omleidingsoperatoren. Als u bijvoorbeeld de tekst van een reeds bestaand bestand wilt wijzigen, maakt u eerst een tekstbestand met de naam testbestand.txt en schrijf er iets in:





Sla het tekstbestand op.



Typ het onderstaande commando in de terminal:

$ echo Overschrijven van de bestaande tekst in het bestand > testfile.txt

Overwringen kan riskant zijn; daarom is het een goede gewoonte om noclobber in te schakelen. Als u noclobber instelt, wordt het overschrijven van elk bestaand bestand geblokkeerd.

$ set –o noclobber
$ echo Overschrijven van de bestaande tekst in het bestand > testfile.txt

Maar als je noclobber wilt omzeilen, gebruik dan de > | operator in plaats van > :

$ echo Overschrijven van de bestaande tekst in het bestand >| testbestand.txt

Of u kunt noclobber eenvoudig uitschakelen:

$ set + of noclobber

Maar met deze opdracht wordt de bescherming van alle bestanden weggenomen.

De bovenstaande uitvoer geeft aan dat de bestaande tekst is overschreven. Laten we nu de . gebruiken >> exploitant:

$ echo Tekst toevoegen aan het bestaande tekstbestand >> testfile.txt

gooide uit is niet altijd ideaal om te gebruiken, omdat je er geen tekst mee kunt opmaken, gebruik daarom printf in plaats van echo om de tekst op te maken, zoals aangetoond in de volgende opdracht:

$ printf Welkom Dit is een nieuw tekstbestand. > nieuwtestbestand.txt

Laten we het concept begrijpen met een bash-scriptvoorbeeld. Open Vim door vim in de terminal te typen. Als je geen Vim-editor op je apparaat hebt, installeer het dan met:

$ sudo apt install vim

Typ het script:

#! /bin/bash
echo Vul je naam in
lees naam
echo $naam > data_dir.txt
echo Vul je leeftijd in
lees leeftijd
echo $leeftijd >> data_dir.txt
cat data_dir.txt

De kat commando wordt gebruikt om de bestanden te maken en te bewerken. Sla het bovenstaande script op in Vim door van modus te wisselen nadat je op de hebt gedrukt Esc toets en typ vervolgens : in mijnscript.sh . Open de terminal en voer de code uit:

Hoe een bestand te schrijven met Heredoc

Als je meerdere regels wilt schrijven, dan is de eenvoudigste methode om Heredoc te gebruiken. Hier document, ook bekend als Heredoc, is een multifunctioneel codeblok. De syntaxis van Heredoc is:

Opdracht<<[-] Delimiter
.
tekst/commando's
.

scheidingsteken

Elke tekenreeks kan worden gebruikt in plaats van scheidingsteken, en - kan ook worden gebruikt om tabspaties in het bestand te verwijderen. Laten we het begrijpen aan de hand van een eenvoudig voorbeeld:

#! /bin/bash

kat<< TEXTFILE
Dit is een tekstbestand.
Dit bestand is gemaakt met heredoc.
TEKSTBESTAND

Het bovenstaande script cat-commando maakt een tekstbestand met de naam TEXTFILE en schrijft tekst in het zojuist gemaakte bestand. Sla het bestand nu op onder de naam mijnscript.sh . Start terminal en voer het script uit.

Een bestand schrijven met het Tee-commando

Een andere methode om een ​​bestand te schrijven is het gebruik van het Tee-commando. Zoals de naam aangeeft, neemt dit commando invoer en schrijft het naar een bestand en toont het tegelijkertijd de uitvoer. Standaard overschrijft het Tee-commando de bestaande gegevens.

$ echo Dit is wat tekst | tee tekstbestand.txt

Gebruik -a toevoegen:

$ echo Dit is een andere tekst | tee –een tekstbestand.txt

Gebruik om meerdere regels te schrijven:

$ echo Tekst toevoegen aan meerdere bestanden | tee tekstbestand1.txt tekstbestand2.txt tekstbestand3.txt

De bovenstaande opdracht zal drie bestanden maken als ze niet bestaan ​​en tekst naar elk van hen schrijven.

Conclusie

Deze handleiding is gericht op meerdere benaderingen om in bash naar een bestand te schrijven met voorbeelden. Bij bash-scripting zijn er meerdere manieren om een ​​bestand te schrijven, maar de eenvoudigste is het gebruik van omleidingsoperatoren >, >>. Om meerdere regels te schrijven, kan heredoc worden gebruikt, en als u dezelfde gegevens naar meerdere regels wilt schrijven, dan is het tee-commando best handig.