Comment écrire dans un fichier dans Bash

How Write File Bash



L'une des tâches essentielles que nous effectuons lorsque nous travaillons avec les scripts bash est la lecture et l'écriture de fichiers. Dans ce guide, nous nous concentrerons sur la façon de lire les fichiers dans bash et de les modifier.

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 >>.







  • > l'opérateur écrasera les données existantes
  • >> l'opérateur ajoutera des données

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 fichiertest.txt et écris n'importe quoi dedans :





Enregistrez le fichier texte.



Tapez la commande ci-dessous dans le terminal :

$ echo Écraser le texte existant dans le fichier > testfile.txt

L'essorage 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 Écraser le texte existant dans le fichier > testfile.txt

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

$ echo Écraser le texte existant dans le fichier >| fichiertest.txt

Ou vous pouvez simplement désactiver noclobber :

$ set + ou noclobber

Mais cette commande supprimera 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 >> testfile.txt

chassèrent 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 Ceci est un nouveau fichier texte. > nouveaufichiertest.txt

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.txt
echo Entrez votre âge
lire l'âge
echo $age >> rép_données.txt
cat data_dir.txt

Les chat La 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 le bouton Esc touche puis tapez : dans 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. Here document, é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 Delimiter, et - peut également être utilisée 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éé à l'aide de heredoc.
FICHIER TEXTE

La commande de script cat 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 monscript.sh . Lancez le terminal et exécutez 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 | tee textfile.txt

Pour ajouter, utilisez -a :

$ echo Ceci est un autre texte | tee – un fichier texte.txt

Pour écrire plusieurs lignes, utilisez :

$ echo Ajout de texte à plusieurs fichiers | tee textfile1.txt textfile2.txt textfile3.txt

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 voulez écrire les mêmes données sur plusieurs lignes, alors la commande tee est très pratique.