GNU/Linux >> Tutoriels Linux >  >> Linux

Comment extraire du texte d'un gros fichier, à partir de la première occurrence d'une chaîne ?

Vous pouvez simplement utiliser "grep" avec le -A et/ou -B options. Le -A le commutateur lira le X nombre de lignes après l'erreur, donc c'est probablement ce que vous voulez, et le -B le commutateur affichera X nombre de lignes avant l'erreur, vous feriez donc quelque chose comme ceci :

grep -A10 -B2 "string to find" /path/and/file.tofind

pour trouver les 10 lignes qui se trouvent après "chaîne à trouver", ainsi que les 2 lignes qui la précèdent.

Alternativement - et c'est probablement une solution bien pire, vous pouvez simplement utiliser "head" et "tail" pour trouver la première puis la dernière partie du fichier que vous voulez; mais cela suppose que vous connaissez les numéros de ligne. Par exemple, si vous avez un fichier long et que vous souhaitez lire les lignes 500 à 510, vous pouvez essayer ceci :

head -510 /etc/file/to/search | tail -10

Ce qui extrairait d'abord les 510 premières lignes du fichier, puis lirait les 10 dernières de ces lignes.


Linux
  1. Comment insérer du texte avant la première ligne d'un fichier ?

  2. Supprimer efficacement les premières lignes d'un fichier texte ?

  3. Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

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

  5. Comment supprimer les lignes qui apparaissent sur le fichier B d'un autre fichier A ?

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

Script bash :comment lire des données à partir de fichiers texte

Comment extraire des adresses e-mail d'un fichier texte sous Linux

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

Comment puis-je obtenir des mots entre les deux premières instances de texte/motif ?

Comment afficher certaines lignes d'un fichier texte sous Linux ?