Linux

Bash naar bestand schrijven

Bash naar bestand schrijven

Een van de meest voorkomende taken bij het schrijven van Bash-scripts of het werken op de Linux-opdrachtregel is het lezen en schrijven van bestanden.

Dit artikel legt uit hoe je tekst naar een bestand in Bash schrijft, met behulp van de omleidingsoperatoren en tee opdracht.

Schrijven naar een bestand met behulp van omleidingsoperators #

In Bash kun je met het omleiden van uitvoer de uitvoer van een opdracht vastleggen en naar een bestand schrijven.

Het algemene formaat voor het omleiden en schrijven van uitvoer naar een bestand is als volgt:

uitvoer > bestandsnaam uitvoer >> bestandsnaam 

U moet schrijfrechten hebben voor het bestand. Anders krijgt u de foutmelding 'Toestemming geweigerd'.

Hier is een eenvoudig voorbeeld dat laat zien hoe de uitvoer van de echo commando naar een bestand:

echo "dit is een regel" > bestand.tekst

Om te voorkomen dat bestaande bestanden worden overschreven, schakelt u de optie "noclobber" in met de set ingebouwd:

set -o noclobberecho "dit is een regel" > bestand.tekst
bash: bestand.txt: kan bestaand bestand niet overschrijven 

De >| operator stelt u in staat om de Bash "noclobber" -optie te negeren:

set -o noclobberecho "dit is een regel" >| het dossier.tekst

De >> operator voegt de uitvoer toe aan het einde van het bestand, in plaats van het bestand te overschrijven:

echo "dit is een regel" >> bestand.tekst

Gebruik de printf commando om een ​​complexe uitvoer te maken:

printf "Hallo, ik ben %s.\n" $USER > bestand.tekst

Als je meerdere regels naar een bestand wilt schrijven, gebruik dan de Here document (Heredoc) omleiding.

U kunt de inhoud bijvoorbeeld doorgeven aan de kat commando en schrijf het naar een bestand:

kat << EOF > het dossier.txt De huidige werkmap is: $PWD Je bent ingelogd als $(whoami) EOF 

Om de regels toe te voegen, wijzigt u > met >> voor de bestandsnaam:

kat << EOF >> bestand.txt De huidige werkmap is: $PWD Je bent ingelogd als $(whoami) EOF 

U kunt de uitvoer van elk commando naar een bestand schrijven:

datum +"Jaar: %Y, Maand: %m, Dag: %d" > bestand.tekst

De uitvoer van de datum commando wordt naar het bestand geschreven.

Schrijven naar een bestand met de tee Commando #

De tee commando leest van de standaardinvoer en schrijft tegelijkertijd naar zowel de standaarduitvoer als een of meer bestanden.

echo "dit is een regel" | tee-bestand.tekst

De tee het standaardgedrag van de opdracht is om het opgegeven bestand te overschrijven, hetzelfde als de > operator. Om de uitvoer aan het bestand toe te voegen, roept u het commando op met de -een (--toevoegen) keuze:

echo "dit is een regel" | tee -een bestand.tekst

Als je niet wilt dat de tee om naar de standaarduitvoer te schrijven, kunt u deze omleiden naar /dev/null:

echo "dit is een regel" | tee-bestand.txt >/dev/null

Om de tekst naar meer dan één bestand te schrijven, specificeert u de bestanden als argumenten voor de tee opdracht:

echo "dit is een regel" | tee file_1.txt-bestand_2.txt-bestand_3.tekst

Een ander voordeel van de tee commando is dat je het kunt gebruiken in combinatie met sudo en schrijf naar bestanden die eigendom zijn van andere gebruikers. Om tekst toe te voegen aan een bestand waarvoor je geen schrijfrechten hebt, voeg je: sudo voordat tee:

echo "dit is een regel" | sudo tee-bestand.tekst

De echo opdrachtuitvoer wordt als invoer doorgegeven aan de tee, die de sudo-rechten verhoogt en de tekst naar het bestand schrijft.

Conclusie #

Om in Linux tekst naar een bestand te schrijven, gebruik je de > en >> omleidingsoperators of de tee opdracht.

Als je vragen of feedback hebt, laat dan gerust een reactie achter.

De scrollrichting van de muis en touchpads omkeren in Windows 10
Muis en Touchpads maken computergebruik niet alleen eenvoudig, maar ook efficiënter en minder tijdrovend. We kunnen ons een leven zonder deze apparate...
Hoe de muisaanwijzer en cursorgrootte, kleur en schema op Windows 10 te veranderen
De muisaanwijzer en cursor in Windows 10 zijn zeer belangrijke aspecten van het besturingssysteem. Dit geldt ook voor andere besturingssystemen, dus i...
Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...