GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter du texte au début du fichier sous Linux

Les utilisateurs de la ligne de commande Linux connaissent le concept des opérateurs de redirection, qui peuvent écrire la sortie dans un fichier ou lire l'entrée d'un fichier.

L'opérateur '>' écrit la sortie dans un nouveau fichier ou dans un fichier existant ; auquel cas il efface tout ce qui était précédemment présent dans le fichier. L'opérateur '>>' d'autre part ajoute la sortie à la fin d'un fichier existant. Cependant, il n'y a pas d'opérateur dédié pour écrire un nouveau texte au début d'un fichier.

Aujourd'hui, nous verrons deux manières d'ajouter du texte au début d'un fichier sous Linux :une avec une solution de contournement et une avec une commande.

Remarque :C'est une bonne approche de sauvegarder d'abord le fichier d'origine, puis d'ajouter le nouveau texte au fichier d'origine. De cette façon, si une erreur se produit lors de l'utilisation des commandes, nous pouvons toujours restaurer le fichier de sauvegarde. Par exemple. Vous pouvez simplement copier un fichier appelé 'fichier1 ' vers un autre fichier nommé 'file1_bkp ' puis ajoutez le texte à l'original, c'est-à-dire 'fichier1 '.

Ajouter du texte au début du fichier à l'aide des commandes echo et cat

Comme vous le savez peut-être, la commande echo imprime tout ce qui est passé comme argument à la sortie, alors que la commande cat imprime le contenu d'un fichier sur la sortie.

On peut ainsi passer le nouveau texte à ajouter à echo , passez le fichier à un chat, combinez et écrivez la sortie dans le fichier. Cela peut être fait comme suit :

$ x=`echo "New Text"; cat filename`
$ echo "$x" > filename

Fondamentalement, nous combinons le nouveau texte et le contenu existant du fichier, et stockons le nouveau contenu dans une variable. Ensuite, nous sortons simplement la variable et la redirigeons vers le même fichier.

$ cat samplefile.txt
$ x=`echo "Name: John"; cat samplefile.txt`
$ cat samplefile.txt

Comme vous pouvez le voir ci-dessus, le nouveau texte a été ajouté sur une nouvelle ligne au début du fichier. Pour ajouter le texte au début de la première ligne existante, utilisez le -n argument de l'écho.

$ x=`echo -n "New Text"; cat filename`
$ echo "$x" > filename
Notez que bien que Bash ou de nombreux autres shells n'ont pas de limite sur la taille d'une variable, cependant, la taille peut être limitée en fonction de l'environnement et de la configuration du système. Par conséquent, il peut y avoir un scénario où 'samplefile.txt ' est un fichier contenant une énorme quantité de données, et la variable ne parvient pas à tout stocker.

Ajouter du texte à la première ligne du fichier à l'aide de la commande sed

sed (abréviation de 'Stream Editor ') est un éditeur de ligne de commande sous Linux, utilisé pour effectuer des opérations telles que l'écriture de texte dans un fichier, la recherche et le remplacement, etc.

sed est une commande complexe avec de nombreuses options pour éditer des fichiers de différentes manières. Nous utiliserons des fonctionnalités particulières de sed pour ajouter du texte au début d'un fichier.

Exécutez ce qui suit pour insérer du texte sur une nouvelle ligne au début.

$ sed -i '1i New Text' filename

Le -i l'argument indique sed pour modifier le fichier lui-même. Sans cela, sed crée automatiquement une copie du fichier et effectue toutes les modifications sur la copie.

La chaîne ‘1i Nouveau Texte’ signifie :'insérer' la chaîne ‘Nouveau texte’ le '1er' ligne.

$ cat samplefile.txt
$ sed -i '1i Introduction' samplefile.txt
$ $ cat samplefile.txt

Encore une fois, cela ajoute le nouveau contenu sur une nouvelle ligne au début. Pour ajouter un nouveau texte sur la ligne existante, exécutez :

$ sed -i '1s/^/New Text/' filename

Fondamentalement, le symbole exposant (‘^’) signifie une chaîne nulle. Le '1' au début signifie que sed devrait considérer la chaîne nulle au début de la ligne 1 et les 's' est un sed commande, pour remplacer une chaîne. Ici, la chaîne nulle est remplacée par 'Nouveau texte ‘.

$ cat samplefile.txt
$ sed -i '1s/^/Person/' samplefile.txt
$ cat samplefile.txt
Conclusion

Nous avons appris deux façons simples mais accrocheuses d'ajouter du nouveau texte au début d'un fichier sous Linux. Bien sûr, la manière évidente de le faire, si cela doit être fait manuellement, est de modifier le fichier avec un éditeur de fichiers. Cependant, dans un script, les méthodes décrites ici peuvent être utilisées.

Merci d'avoir lu et faites-nous part de vos réflexions dans les commentaires ci-dessous !


Linux
  1. Comment utiliser la commande Tar sous Linux

  2. Comment ajouter des numéros de ligne aux fichiers texte sous Linux

  3. Comment ajouter facilement du texte à la fin du fichier sous Linux

  4. Comment puis-je ajouter une chaîne au début de chaque fichier dans un dossier en bash ?

  5. Comment obtenir la taille physique d'un fichier sous Linux ?

Comment utiliser la commande Linux head

Comment utiliser la commande Linux diff

Comment créer un fichier sous Linux

Comment créer des répertoires à partir d'un fichier texte sous Linux

Comment décompresser les fichiers gz sous Linux

Comment utiliser la commande Gzip sous Linux ?