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