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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  remplacer une variable par une autre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

remplacer une variable par une autre

n°1624142
nikhun
Posté le 15-10-2007 à 19:12:07  profilanswer
 

voila, jai un fichier latex comme suit
 
texte.tex
 

Code :
  1. \begin{document}
  2. Par exemple, en écrivant une première ligne, on peut se rendre compte \footnote{note 1} de la création automatique \footnote{note 2} des notes en bas de $
  3. On peut aussi sauter des lignes pour voir un peu ce que cela donne \footnote{note 3}.
  4. Mais le plus important reste de pouvoir insérer \footnote{note 4} les notes facilement à partir du document initial \ldots
  5. \end{document}


 
et un autre fichier note.txt
 

Code :
  1. tout le monde peut
  2. vive latex
  3. et pas seulement
  4. le plus facilement du monde


 
jaimerai remplacer chaque note dans le 1er fichier par la ligne correspondante du 2eme (note 1 = ligne 1 etc ...)
 
jai 2 variables $note = \footnote{note $x} et une variable $temp ki saisie la ligne correspondante a $x
 

Code :
  1. x=1
  2. for ((i = 4; i >= 0; i -= 1))
  3. do
  4.         #syntaxe des notes a remplacer
  5.         note="\\foonote{note $x}"
  6.         #mets la ligne x dans une variable "temp"
  7.         temp=$(awk 'NR=='$x'{print}' notes.txt)
  8.         #fonction de remplacement
  9.         awk '{ sub(/'"$note"'/,"$temp" );print}' texte.tex
  10.         #incrementation de la variable
  11.         x=`expr $x + 1`
  12. done


 
la fonction sub de awk ne marche pas et je ne voi pas comment remplacer la variable note par la variable temp correspondante ...
help please !

mood
Publicité
Posté le 15-10-2007 à 19:12:07  profilanswer
 

n°1624284
tuxce
Posté le 15-10-2007 à 22:54:35  profilanswer
 

je connais pas la fonction sub, mais tu peux utiliser sed:

sed -i "s/$note/$temp/" texte.tex

n°1625907
aigles
Posté le 17-10-2007 à 19:13:03  profilanswer
 

nikhun a écrit :

la fonction sub de awk ne marche pas et je ne voi pas comment remplacer la variable note par la variable temp correspondante ...
help please !


Essaye de modifier la valeur de ta variable note :

       #syntaxe des notes a remplacer
        note="\\foonote\{note $x\}"


Voici une autre solution avec une commande awk :

awk '
NR==FNR {
   texte = texte (texte ? "\n" : "" ) $0;
   next;
}
{
   gsub("\\\\footnote\\{note " FNR "\\}", $0, texte);
}
END {
   print texte;
}
' texte.tex note.txt


---------------
Jean Pierre.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  remplacer une variable par une autre

 

Sujets relatifs
[PHP] Variable[css]largeur variable (pour design extensible)
Placer contenu ligne de fichier dans une variableProbléme pour remplacer = dans une variable
[PHP]Pb: Remplacer 1 variable par 1 mot avec RegExRemplacer <Command1.propriété=…> par <Command (variable ?)…>
Remplacer une variable par son contenu[JAVASCRIPT] Remplacer une virgule par un point dans une variable
[CSS] peut on remplacer la valeur de background par une variable ?[VC++] Remplacer un nom de variable dans plusieurs fichiers...
Plus de sujets relatifs à : remplacer une variable par une autre


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