Changer une ligne du fichier avec bash
Résolu
jhoncoke
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
jhoncoke Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
jhoncoke Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Changer une ligne du fichier avec bash
- Changer dns - Guide
- Fichier bin - Guide
- Fichier epub - Guide
- Changer extension fichier - Guide
- Fichier rar - Guide
2 réponses
Salut,
Avec "sed" ou "awk", mais tout dépend du traitement à effectuer...
Avec "sed" ou "awk", mais tout dépend du traitement à effectuer...
sed '24 {traitement}' fichier.txt awk ' NR == 24 { traitement }' fichier.txt
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??
On peut faire cela avec awk??
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 $
;-))