Supprimer des lignes avec awk ou sed

Résolu
Titi 77 -  
baymard Messages postés 30 Statut Membre -
Bonjour,

Dans un script shell avec awk ou sed (le plus simple) je veux supprimer de la 2ème ligne d'un fichier jusqu'à la ligne qui précède la ligne où est écrit le mot « SOCIETE »

Il y a environ 1500 lignes à supprimer
Merci pour votre aide

1 réponse

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    En supposant que ta version de sed accepte l'option "-i" :

    sed -i.bak '2,/SOCIETE/{/SOCIETE/b;d}' fichier

    0
    1. titi77
       
      Merci bcp zipe31, ça fonctionne mieux que bien !!!!!!!!!!!
      0
    2. baymard Messages postés 30 Statut Membre
       
      Salut les gars je suis ravi d'être tombé sur ce tuto en ce moment où j'ai vraiment besoin d'aide.
      le tuto marche très bien mais mon problème est le suivant je voudrais garder une partie de texte qui se trouve entre deux je peux dire au milieu du texte principal.
      j'ai exploité le code principale et celui-ci marche en deux volet pour avoir le résultat désiré voici en fait ce que je fais:
      sed -i.bak '1,/AVU/{/AVU/b,d} test
      sed -i.bak '14,/AVU/{/AVU/b,d} test
      en comment exécuter ce code si l'on veut découper le texte en plusieurs parties insérées dans un grand texte?par exemple si j'ai un texte comme celui ci:
      1 Device Name : ARMP
      2 Device Location : Yaounde
      3 ATPC Status : Enabled
      4 Optimal Uplink RSSI (dBm) : -74
      5 Operator ID : 186.190.0
      6 Cell ID : 5.6
      7 Duplex Mode : TDD
      8 DL-UL Ratio (%) : 60-40
      9 Chain Number : 1
      10 External 1PPS Clock : Enable
      11 External 16MHz Clock : Disable

      et que je veux récupérer les lignes 3, 5 et 9 par exemple afin d'obtenir comme résultat:

      3 ATPC Status : Enabled
      5 Operator ID : 186.190.0
      9 Chain Number : 1

      voilà ma principale préoccupation merci d'avance
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      sed -n '3p;5p;9p' fichier
      0
    4. baymard Messages postés 30 Statut Membre
       
      excuser moi et si les lignes ne sont pas numérotées comme ceci
      Device Name : ARMP
      Device Location : Yaounde ATPC Status : Enabled
      Optimal Uplink RSSI (dBm) : -74
      Operator ID : 186.190.0
      Cell ID : 5.6
      Duplex Mode : TDD
      DL-UL Ratio (%) : 60-40
      Chain Number : 1
      External 1PPS Clock : Enable
      External 16MHz Clock : Disable

      et que je veux récupérer les lignes 3, 5 et 9 par exemple afin d'obtenir comme résultat:

      ATPC Status : Enabled
      Operator ID : 186.190.0
      Chain Number : 1

      est ce que votre solution marche toujours ?
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Oui ;-)

      Et puis pour le savoir, y'a qu'à essayer, ça coûte rien ;-)
      0