Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1658 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°720574
tsunamijf
PSN : julien_fr38
Posté le 24-08-2005 à 09:31:00  profilanswer
 

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
mood
Publicité
Posté le 24-08-2005 à 09:31:00  profilanswer
 

n°720619
jlighty
Posté le 24-08-2005 à 11:21:24  profilanswer
 

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

n°720623
tsunamijf
PSN : julien_fr38
Posté le 24-08-2005 à 11:31:14  profilanswer
 

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
n°720629
jlighty
Posté le 24-08-2005 à 11:37:08  profilanswer
 

donc si le champ 6 est différent de ton motif, tu affiches la ligne
Simple non ?

n°720636
tsunamijf
PSN : julien_fr38
Posté le 24-08-2005 à 11:43:02  profilanswer
 

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
n°720637
jlighty
Posté le 24-08-2005 à 11:44:20  profilanswer
 

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
n°720638
tsunamijf
PSN : julien_fr38
Posté le 24-08-2005 à 11:47:48  profilanswer
 

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
n°720641
jlighty
Posté le 24-08-2005 à 11:51:48  profilanswer
 

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
n°720642
tsunamijf
PSN : julien_fr38
Posté le 24-08-2005 à 11:53:59  profilanswer
 

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
n°720890
matafan
Posté le 24-08-2005 à 20:04:54  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

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

 

Sujets relatifs
[shell] ajouter ligne en début de fichierAccès à une page web depuis la ligne de commande ?
Envoi de mail en ligne de commandeEntrée ligne d'un Audigy muette...
[muine] silence au début de chaque morceau[Mandrake] Mise à jour en ligne
Installer une police de caractère sous linuxAjouter un utilisateur sur debian
Plus de sujets relatifs à : [Awk] ajouter un caractere en debut d'une ligne specifique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR