GNU/Linux >> Tutoriels Linux >  >> Linux

Ajouter un en-tête à un fichier délimité par des tabulations

Personnellement, j'irais avec nano -w file.txt;-) (c'est-à-dire qu'il suffit d'utiliser un éditeur de texte, il n'est pas nécessaire d'être nano bien sûr)

Mais si vous vouliez le faire dans un environnement non interactif pour une raison quelconque, vous pouvez utiliser cat pour toutes sortes de concaténations :

echo $'name\tage\tuniversity\tcity' | cat - file.txt > file2.txt

ajoutera l'en-tête et mettra la sortie dans file2.txt . Si vous souhaitez écraser le fichier d'origine, vous pouvez le faire avec

echo $'name\tage\tuniversity\tcity' | cat - file.txt > file2.txt; mv file{2,}.txt

Ou vous pouvez utiliser sed comme suit :

sed -i $'1 i\\\nname\tage\tuniversity\tcity' file.txt

Notez que j'utilise $'...' citant pour me permettre d'utiliser \t pour représenter tabulation et \n pour représenter une nouvelle ligne (parmi d'autres substitutions ; voir la page de manuel bash pour plus d'informations). Dans ce type de chaîne entre guillemets, \\ représente une barre oblique inverse littérale. Donc le programme passé à sed est en fait

1 i\
name    age     university      city

Il n'y a pas d'opérateur "prepend" comme l'opérateur "append" >> , mais vous pouvez écrire l'en-tête dans un fichier temporaire, copier ensuite le contenu de votre fichier dans le fichier temporaire et le déplacer en arrière :

echo -e "name\tage\tuniversity\tcity" | cat - yourfile > /tmp/out && mv /tmp/out yourfile

$ { printf 'name\tage\tuniversity\tcity\n'; cat orig-file; } > new-file

Ou

$ printf '1\ni\nname\tage\tuniversity\tcity\n.\nw\n' | ed -s orig-file

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

  2. Comment ajouter une nouvelle ligne à la fin d'un fichier ?

  3. Diviser le fichier par nombre de lignes, y compris l'en-tête dans chacune ?

  4. Script shell Linux pour ajouter des zéros non significatifs aux noms de fichiers

  5. Écrire dans le fichier .txt ?

Comment ajouter un fichier d'échange sur Ubuntu 20.04

Vi et Vim Autocommand :3 étapes pour ajouter automatiquement un en-tête personnalisé à votre fichier

Comment vérifier si un fichier est vide dans Bash ?

Comment convertir ISO8859-15 en UTF8 ?

Convertir toutes les extensions de fichiers en minuscules

Prendre la nième colonne dans un fichier texte