Programmation BASH

Comment écrire dans un fichier dans Bash

Comment écrire dans un fichier dans Bash
L'une des tâches essentielles que nous effectuons lorsque nous travaillons avec des scripts bash est de lire et d'écrire des fichiers. Dans ce guide, nous nous concentrerons sur la façon de lire les fichiers dans bash et de les éditer.

Il existe plusieurs façons de lire et d'écrire un fichier dans bash. Le moyen le plus simple est d'utiliser les opérateurs ">" et ">>".

Le format général d'utilisation des opérateurs de redirection est :

Données > Nom de fichier
Données >> Nom du fichier

Comprenons la procédure d'écriture dans un fichier avec un exemple :

Comment écrire un fichier à l'aide d'opérateurs de redirection

Comme indiqué ci-dessus, l'approche simple et directe de l'écriture dans un fichier utilise des opérateurs de redirection. Par exemple, si vous souhaitez modifier le texte d'un fichier déjà existant, créez d'abord un fichier texte du nom de "fichier de test.SMS" et écrivez n'importe quoi dedans :

Enregistrer le fichier texte.

Tapez la commande ci-dessous dans le terminal :

$ echo "Ecraser le texte existant dans le fichier" > testfile.SMS

Trop essorer peut être risqué ; par conséquent, il est recommandé d'activer « noclobber ». La définition de "noclobber" bloquerait tout écrasement de tout fichier existant.

$ set -o noclobber
$ echo "Ecraser le texte existant dans le fichier" > testfile.SMS

Mais si vous voulez contourner "noclobber", utilisez le ">|opérateur " au lieu de ">" :

$ echo "Ecraser le texte existant dans le fichier" >| fichier de test.SMS

Ou vous pouvez simplement désactiver « noclobber » :

$ set +o noclobber

Mais cette commande enlèvera la protection de tous les fichiers.

La sortie ci-dessus indique que le texte existant a été écrasé. Maintenant, utilisons le ">>” opérateur :

$ echo "Ajout de texte au fichier texte existant" >> fichier de test.SMS

"écho" n'est pas toujours idéal à utiliser car vous ne pouvez pas formater le texte en l'utilisant, utilisez donc " printf " à la place de " echo " pour formater le texte comme illustré dans la commande suivante :

$ printf "Bienvenue \n Ceci est un nouveau fichier texte.” > nouveaufichiertest.SMS

Comprenons le concept avec un exemple de script bash. Ouvrez Vim en tapant "vim" dans le terminal. Si vous n'avez pas l'éditeur Vim sur votre appareil, installez-le en utilisant :

$ sudo apt installer vim

Tapez le script :

#! /bin/bash
echo "Entrez votre nom"
lire le nom
echo $name > data_dir.SMS
echo "Entrez votre âge"
lire l'âge
echo $age >> rép_données.SMS
cat data_dir.SMS

Le "chatLa commande " est utilisée pour créer et éditer les fichiers. Enregistrez le script ci-dessus dans Vim en changeant de mode après avoir appuyé sur la touche "Esc” puis tapez “:w monscript.sh". Ouvrez le terminal et exécutez le code :

Comment écrire un fichier avec Heredoc

Si vous souhaitez écrire plusieurs lignes, la méthode la plus simple consiste à utiliser "Heredoc". Le document Here, également connu sous le nom de « Heredoc », est un bloc de code polyvalent. La syntaxe de Heredoc est :

Commander <<[-] Delimiter
.
texte/commandes
.

Délimiteur

N'importe quelle chaîne peut être utilisée à la place de "Délimiteur", et  "-" peut également être utilisé pour supprimer les espaces de tabulation dans le fichier. Comprenons-le à l'aide d'un exemple simple :

#! /bin/bash
chat << TEXTFILE
Ceci est un fichier texte.
Ce fichier est créé en utilisant heredoc.
FICHIER TEXTE

La commande "cat" du script ci-dessus crée un fichier texte du nom de "TEXTFILE" et écrit du texte dans le fichier qui vient d'être créé. Enregistrez maintenant le fichier sous le nom de "mon script.sh". Lancer le terminal et exécuter le script.

Comment écrire un fichier à l'aide de la commande Tee

Une autre méthode pour écrire un fichier consiste à utiliser la commande « Tee ». Comme nom indiquant cette commande prend l'entrée et écrit dans un fichier et affiche la sortie simultanément. Par défaut, la commande « Tee » écrasera les données existantes.

$ echo "Ceci est du texte" | fichier texte tee.SMS

Pour ajouter, utilisez -a :

$ echo "Ceci est un autre texte" | tee -un fichier texte.SMS

Pour écrire plusieurs lignes, utilisez :

$ echo "Ajout de texte à plusieurs fichiers" | tee textfile1.txt fichier texte2.txt fichier texte3.SMS

La commande ci-dessus créera trois fichiers s'ils n'existent pas et écrira du texte dans chacun d'eux.

Conclusion

Ce guide se concentre sur plusieurs approches pour écrire dans un fichier en bash avec des exemples. Dans les scripts bash, il existe plusieurs façons d'écrire un fichier, mais la plus simple consiste à utiliser les opérateurs de redirection ">", ">>". Pour écrire plusieurs lignes, "heredoc" peut être utilisé, et si vous souhaitez écrire les mêmes données sur plusieurs lignes, la commande "tee" est très pratique.

Top 5 des cartes de capture de jeu
Nous avons tous vu et aimé des gameplays en streaming sur YouTube. PewDiePie, Jakesepticye et Markiplier ne sont que quelques-uns des meilleurs joueur...
Comment développer un jeu sur Linux
Il y a dix ans, peu d'utilisateurs de Linux prédisaient que leur système d'exploitation préféré serait un jour une plate-forme de jeu populaire pour l...
Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...