ajouter un caractere en debut d'une ligne specifique [Awk] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 24-08-2005 à 11:21:24
Citation : si la ligne contient une certaine chaine |
ça tu dois savoir le faire
Citation : un caractère en debut de ligne |
tu auras besoin de printf
j'espère t'avoir donné suffisamment de piste
Marsh Posté le 24-08-2005 à 11:31:14
j'ai trouvé un début de reponse
awk '$6=="/soft/adm/sys/Launcher_Cfagent.ksh" {$0="#"$0}' $rep$fichier.app
le problème c'est que j'aimerais qu'il enregistre la modification sur le fichier qu'il traite ...
et ca marche pas
Marsh Posté le 24-08-2005 à 11:37:08
donc si le champ 6 est différent de ton motif, tu affiches la ligne
Simple non ?
Marsh Posté le 24-08-2005 à 11:43:02
Je veux modifier le contenu du fichier
Plus exactement, si la ligne dont l'argument $6 vaut "/soft..." alors je # la ligne.
Si j'essaie un printf ca m'affiche bien la ligne #
Mais j'aimerai qu'il répercute cette modification sur le fichier que je lui ai passé en paramètre
Marsh Posté le 24-08-2005 à 11:44:20
je la refais :
si le champ 6 de ta ligne contient ton motif : on ajoute un # (pour la commenter je suppose)
si le champ 6 de ta ligne ne contient pas ton motif, on l'affiche entièrement
Marsh Posté le 24-08-2005 à 11:47:48
Je suis ok avec toi.
Mais j'aimerai savoir comment enregistrer ce que Awk modifie dans mon fichier
une redirection vers un fichier ? je prefere pas le faire s'il existe une solution alternative
Marsh Posté le 24-08-2005 à 11:51:48
ce n'est pas trop conseillé de modifier le fichier lui même donc redirection dans un fichier tmp puis recopie sur celui-ci.
Je tiens quand même à préciser que awk traite un fichier et renvoit le résultat sur la sortie standard (ou un fichier si redirection).
Marsh Posté le 24-08-2005 à 11:53:59
mouais apparement pas trop le choix,
je vais faire une redirection, la modif passe sans probleme
je pensais juste que awk pouvait modifier le fichier directement.
Merci pour ton aide
Marsh Posté le 24-08-2005 à 20:04:54
On ne peux pas rediriger vers le fichier qu'on lit. Enfin on peut, mais dans la plupart des cas tu finira avec un fichier vide. Si ta verson de awk n'est pas capable de traiter les ficiher "in place", il FAUT passer par un fichier intermediaire.
Marsh Posté le 24-08-2005 à 09:31:00
Bonjour
débutant sous awk
j'aimerais ajouter un caractère en debut de ligne si la ligne contient une certaine chaine
Je sais que c'est un exemple simple à faire ...
je cherche de mon coté quand même bien sur
Merci
Message édité par tsunamijf le 24-08-2005 à 11:32:53
---------------
PSN : julien_fr38