GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer les N premières lignes d'un fichier Ascii à l'aide des commandes Shell ?

J'ai plusieurs fichiers contenant des informations textuelles ascii dans les 5 à 10 premières lignes, suivies d'informations matricielles bien tabulées. Dans un script shell, je souhaite supprimer ces premières lignes de texte afin de pouvoir utiliser les informations de matrice pures dans un autre programme. Comment puis-je utiliser les commandes bash shell pour faire cela ?

Si cela peut vous aider, j'utilise RedHat et un système Linux Ubuntu.

Réponse acceptée :

Tant que le fichier n'est pas un lien symbolique ou un lien physique, vous pouvez utiliser sed, tail ou awk. Exemple ci-dessous.

$ cat t.txt
12
34
56
78
90

sed

$ sed -e '1,3d' < t.txt
78
90

Vous pouvez également utiliser sed sur place sans fichier temporaire :sed -i -e 1,3d yourfile . Cela ne fera écho à rien, il modifiera simplement le fichier sur place. Si vous n'avez pas besoin de rediriger le résultat vers une autre commande, c'est plus simple.

queue

$ tail -n +4 t.txt
78
90

mauvais

$ awk 'NR > 3 { print }' < t.txt
78
90

Linux
  1. Comment supprimer les premières/dernières lignes 'n' de la sortie de la commande dans Shell ?

  2. Comment boucler sur les lignes d'un fichier ?

  3. Comment utiliser les lignes d'un fichier comme arguments d'une commande ?

  4. Comment lire le code source des commandes shell ?

  5. Comment utiliser sed pour supprimer les n dernières lignes d'un fichier

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Comment supprimer des lignes vides dans des fichiers à l'aide de Grep, Sed et Awk

Tutoriel Unix Sed :Supprimer des lignes de fichier à l'aide d'adresses et de modèles

Tutoriel Unix Sed :comment écrire dans un fichier à l'aide de Sed

Comment supprimer le texte sélectionné dans l'éditeur vi

Comment insérer du texte à la 1ère ligne d'un fichier à l'aide de sed ?