GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter une ligne d'en-tête et de fin à un fichier sous Linux

Dans cet article, nous verrons les différentes manières d'ajouter un enregistrement d'en-tête ou un enregistrement de fin à un fichier.

Considérons un fichier, file1.

$ cat file1
apple
orange
grapes
banana

Ajouter une ligne au début du fichier (en-tête)

1. Pour ajouter un enregistrement d'en-tête à l'aide de sed :

$ sed '1i some text at the beginning' file1
some text at the beginning
apple
orange
grapes
banana

Le '1i' dans sed inclut(i) la ligne du texte au début seulement avant la première ligne(1) du fichier. La commande ci-dessus affiche le contenu du fichier avec l'en-tête sans mettre à jour le fichier. Pour mettre à jour le fichier d'origine lui-même, utilisez l'option -i de sed comme indiqué ci-dessous :

$ sed -i.bkp '1i some text at the beginning' file1

L'option -i.bkp crée un fichier de sauvegarde nommé file1.bkp avant de modifier le fichier d'origine. L'extension .bkp peut être n'importe quoi de votre choix.

2. Vous pouvez également utiliser cet exemple de sed pour insérer une ligne d'en-tête :

$ sed '1s/^/some text at the beginning\n/' file1

Le « 1 » indique le numéro de ligne qui ne sera mis en correspondance que lors de la substitution avec la commande « s ». Le symbole ‘^’ indique le début de la ligne. Notez également le retour chariot "\n" ajouté à la fin, ce qui permet d'imprimer une nouvelle ligne après le remplacement.

3. Vous pouvez également utiliser la commande cat avec l'instruction bash printf pour ajouter une ligne au début du fichier.

$ printf '%b' 'some text at the beginning\n' | cat - file1

4. Pour ajouter un enregistrement d'en-tête à un fichier à l'aide de awk :

$ awk 'BEGIN{print "some text at the beginning"}1' file1
some text at the beginning
apple
orange
grapes
banana

Le COMMENCER L'instruction dans awk donne à l'instruction un texte au début à imprimer avant de traiter le fichier, et donc l'en-tête apparaît dans la sortie. Le 1 est pour indiquer d'imprimer chaque ligne du fichier.

Ajouter une ligne à la fin du fichier (bande-annonce)

1. La plus simple de toutes les commandes ici est simple en utilisant la redirection pour ajouter une ligne à la fin du fichier. Par exemple :

$ echo "some text at the end" >> file1

2. Pour ajouter un enregistrement de fin à un fichier à l'aide de sed :

$ sed '$a some text at the end' file1
apple
orange
grapes
banana
some text at the end

Le $a fait en sorte que le sed ajoute (a) l'instruction du texte à la fin seulement après la dernière ligne ($) du fichier.

3. Pour ajouter un enregistrement de fin à un fichier à l'aide de awk :

$ awk '1;END{print "some text at the end"}' file
apple
orange
grapes
banana
some text at the end

La FIN label fait en sorte que l'instruction d'impression ne s'imprime qu'après le traitement du fichier. Le 1 est d'imprimer chaque ligne. 1 signifie en fait vrai.

installé sur MAC OSX

sed se comporte peu différemment sur MAC OS, par rapport à GNU sed. Vous pouvez essayer ci-dessous l'exemple sed pour ajouter une ligne d'en-tête au fichier sous MAC.

$ sed -i '.bak' '1s/^/some text at the beginning\'$'\n/g' file1


Linux
  1. Comment ajouter du texte à la fin du fichier sous Linux

  2. Comment supprimer des fichiers et des répertoires sous Linux à partir de la ligne de commande

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

  4. Comment diviser et combiner des fichiers à partir de la ligne de commande sous Linux

  5. Comment convertir les sauts de ligne dans un fichier texte entre les formats Windows et Unix/Linux ?

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

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

Comment trouver la ou les lignes les plus longues dans un fichier sous Linux

Comment créer et utiliser un fichier d'échange sous Linux

Comment masquer des dossiers et des fichiers sous Linux à l'aide d'un fichier texte

Comment extraire le fichier Tar.xz sur la ligne de commande Linux