Changer une ligne du fichier avec bash

Résolu
jhoncoke Messages postés 44 Statut Membre -  
jhoncoke Messages postés 44 Statut Membre -
Bonjour,

j'ai un fichier txt qui contient du texte et des chiffres. Je voudrais changer une ligne de ce fichier (c'est la ligne 24). Voici un exemple:

]valeurs1
1 120
]end
]valeurs2
]end
]valeurs 3 <= ligne 23
1 2 3 <= ligne 24 : ligne à traiter les valeurs 1, 2 et 3 séparées par un tab.
]end
]valeurs4
]end
]valeurs5
]end

Donc l'idée c'est ou de compter les lignes et de dires quand on arrive à la ligne 24 on traite les valeurs 1, 2 et 3.

Quelqu'un aurait il une idée svp?

Merci

2 réponses

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

    Avec "sed" ou "awk", mais tout dépend du traitement à effectuer...

    sed '24 {traitement}' fichier.txt
    awk ' NR == 24 { traitement }' fichier.txt
    0
  2. jhoncoke Messages postés 44 Statut Membre
     
    Merci pour la réponse... Au fait c'est pour incrémenter la valeur 2 et lancer un autre script à chaque incrémentation...

    On peut faire cela avec awk??
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Je ne suis ps un spécialiste de "awk", surement y-a-t-il moyen d'optimiser tout ça ;-\

      $ cat plop
      ]valeurs1
      1 120
      ]end
      ]valeurs2
      ]end
      ]valeurs 3 <= ligne 23
      1       2       3
      ]end
      ]valeurs4
      ]end
      ]valeurs5
      ]end
      
      $ awk 'BEGIN { OFS="\t" } NR != 7 { print $0 } NR == 7 { print $1,$2+1,$3 }' plop
      ]valeurs1
      1 120
      ]end
      ]valeurs2
      ]end
      ]valeurs 3 <= ligne 23
      1       3       3
      ]end
      ]valeurs4
      ]end
      ]valeurs5
      ]end
      
      $

      ;-))
      0
    2. jhoncoke Messages postés 44 Statut Membre
       
      Merci :)
      0