GNU/Linux >> Tutoriels Linux >  >> Linux

Bash :ajouter au fichier

Dans Bash, il existe plusieurs façons d'ajouter du texte à un fichier. Cet article en explique quelques-uns.

Pour ajouter du texte à un fichier, vous devez disposer d'autorisations d'écriture sur celui-ci. Sinon, vous recevrez une erreur d'autorisation refusée.

Ajouter à un fichier à l'aide de l'opérateur de redirection (>> ) #

La redirection vous permet de capturer la sortie d'une commande et de l'envoyer comme entrée à une autre commande ou à un autre fichier. Le >> l'opérateur de redirection ajoute la sortie à un fichier donné.

Il existe un certain nombre de commandes que vous pouvez utiliser pour imprimer du texte sur la sortie standard et le rediriger vers le fichier, avec echo et printf étant les plus utilisés.

Pour ajouter du texte à un fichier, indiquez le nom du fichier après l'opérateur de redirection :

echo "this is a new line" >> file.txt

Lorsqu'il est utilisé avec le -e option le echo La commande interprète les caractères échappés par une barre oblique inverse tels que la nouvelle ligne \n :

echo -e "this is a new line \nthis is another new line" >> file.txt

Pour produire une sortie plus complexe, utilisez le printf commande qui permet de spécifier le formatage de la sortie :

printf "Hello, I'm %s.\n" $USER >> file.txt

Une autre façon d'ajouter du texte à un fichier consiste à utiliser le document Here (Heredoc). C'est un type de redirection qui vous permet de passer plusieurs lignes d'entrée à une commande.

Par exemple, vous pouvez passer le contenu au cat commande et l'ajouter à un fichier :

cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as: $(whoami)
EOF

Vous pouvez ajouter la sortie de n'importe quelle commande à un fichier. Voici un exemple avec la date commande :

date +"Year: %Y, Month: %m, Day: %d" >> file.txt

Lors de l'ajout à un fichier à l'aide d'une redirection, veillez à ne pas utiliser le > opérateur pour écraser un fichier existant important.

Ajouter à un fichier en utilisant le tee Commande #

tee est un utilitaire de ligne de commande sous Linux qui lit à partir de l'entrée standard et écrit à la fois sur la sortie standard et sur un ou plusieurs fichiers en même temps.

Par défaut, le tee La commande écrase le fichier spécifié. Pour ajouter la sortie au fichier, utilisez tee avec le -a (--append ) :

echo "this is a new line"  | tee -a file.txt

Si vous ne voulez pas tee pour écrire sur la sortie standard, redirigez-la vers /dev/null :

echo "this is a new line"  | tee -a file.txt >/dev/null

L'avantage d'utiliser le tee commande sur le >> l'opérateur est ce tee vous permet d'ajouter du texte à plusieurs fichiers à la fois et d'écrire dans des fichiers appartenant à d'autres utilisateurs en conjonction avec sudo .

Pour ajouter du texte à un fichier sur lequel vous n'avez pas d'autorisation d'écriture, ajoutez sudo avant tee comme indiqué ci-dessous :

echo "this is a new line" | sudo tee -a file.txt

tee reçoit la sortie du echo commande, élève les autorisations sudo et écrit dans le fichier.

Pour ajouter du texte à plusieurs fichiers, spécifiez les fichiers comme arguments du tee commande :

echo "this is a new line"  | tee -a file1.txt file2.txt file3.txt

Conclusion #

Sous Linux, pour ajouter du texte à un fichier, utilisez le >> opérateur de redirection ou le tee commande.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Un script Bash peut-il être accroché à un fichier ?

  2. Comment parser un fichier CSV dans Bash ?

  3. Comment ajouter du texte à un fichier ?

  4. script bash ajoute du texte à la première ligne d'un fichier

  5. Bash :Aucun fichier ou répertoire de ce type ?

Commande de source bash

Comment rediriger stderr vers stdout dans Bash

Remplacement de chaîne dans Bash

35 exemples de scripts bash

Script Bash - Instructions conditionnelles

Script bash (III)