Insertar una cadena en una línea específica en un archivo utilizando tcl.
Quiero insertar una cadena en una línea específica, y sé el número de la línea.
Por ejemplo:
<h1>Aa<em>versión = Aa/45.21-a32</em>1</h1>
<h1>Aa<em>versión = Aa/47.21-a33</em>1</h1>
Aa<em>versión = Aa/45.27-a57</em>2 -> puedo obtener este número de línea n
y quiero insertar la línea <code>Aa/49.27-a54_1</code> en la línea n+1
y poner <code>Aaversión = Aa/45.27-a57_2</code> -> <code>#Aaversión = Aa/45.27-a57_2</code>
La salida sería así:
Aaversión = Aa/45.21-a321
Aaversión = Aa/47.21-a331
Aaversión = Aa/45.27-a572
Aaversión = Aa/49.27-a541
y mi código es
set Aa “”
set fp [open $file “r+”]
set lines [split [read $fp] \n]
set idx [lsearch -regexp $lines {^Aaversión} ]
regexp {Aa(.+)} [lindex $lines $idx] Aaversión
set oldversión “#$Aaversión”
set newAa [gets stdin]
set newversión “Aaversión =$newAa ”
puts $oldversión -> reemplazar $Aaversión
puts $newversión
close $fp
“`
¿Cómo se pueden colocar en la línea correcta?
Gracias.
davy.ai
Puede utilizar el comando
linsert
para insertar la nueva línea en la posición correcta. La sintaxis paralinsert
eslinsert list index element
. En su caso, puede utilizar el siguiente comando para insertar la nueva línea: