[Awk] ajouter un caractere en debut d'une ligne specifique

ajouter un caractere en debut d'une ligne specifique [Awk] - Codes et scripts - Linux et OS Alternatifs

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
Reply

Marsh Posté le 24-08-2005 à 09:31:00   

Reply

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 ;)

Reply

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 :(


---------------
PSN : julien_fr38
Reply

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 ?

Reply

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


---------------
PSN : julien_fr38
Reply

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


Message édité par jlighty le 24-08-2005 à 11:45:10
Reply

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
 


---------------
PSN : julien_fr38
Reply

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).


Message édité par jlighty le 24-08-2005 à 11:55:53
Reply

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 ;)


---------------
PSN : julien_fr38
Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed