Agregar una línea con sed
Resuelto
wapette21
Mensajes publicados
68
Estado
Miembro
-
Eric -
Eric -
Hola,
Te escribo porque estoy muy contento con mi último puesto.
Siempre tengo problemas con el comando sed.
Quiero añadir una línea en un archivo de texto, pero quiero poder insertarla después
de la línea que elija.
el comando que uso: sed '${num_ligne}a! $addtext' fichier.txt
pero sin éxito.
Gracias por tu respuesta.
Te escribo porque estoy muy contento con mi último puesto.
Siempre tengo problemas con el comando sed.
Quiero añadir una línea en un archivo de texto, pero quiero poder insertarla después
de la línea que elija.
el comando que uso: sed '${num_ligne}a! $addtext' fichier.txt
pero sin éxito.
Gracias por tu respuesta.
Configuración: Windows XP Firefox 3.0
19 respuestas
hola,
sé que este post es antiguo pero para quienes aún buscan una solución, aquí les propongo lo siguiente.
Para insertar(i), añadir(a), intercambiar(c) una línea con el comando sed
ej.: añadir al final del archivo
sed -e '$a\texto que vous voulez ' fichier
ej.: añadir después de una línea "añadir este texto después de la línea" "2"
sed -e '2a\texto que vous voulez ' fichier
con la opción (i), posiciona tu texto en la línea 2 y desplaza el resto del texto.
Espero que esto ayude a alguien
+++
sé que este post es antiguo pero para quienes aún buscan una solución, aquí les propongo lo siguiente.
Para insertar(i), añadir(a), intercambiar(c) una línea con el comando sed
ej.: añadir al final del archivo
sed -e '$a\texto que vous voulez ' fichier
ej.: añadir después de una línea "añadir este texto después de la línea" "2"
sed -e '2a\texto que vous voulez ' fichier
con la opción (i), posiciona tu texto en la línea 2 y desplaza el resto del texto.
Espero que esto ayude a alguien
+++
¡Hola!
Acabo de encontrar esto, ¡espero que encuentres la respuesta ahí dentro ^^!
que tengas un buen día
http://www.commentcamarche.net/forum/affich 1982836 commande sed
Acabo de encontrar esto, ¡espero que encuentres la respuesta ahí dentro ^^!
que tengas un buen día
http://www.commentcamarche.net/forum/affich 1982836 commande sed
Gracias por tu respuesta pero la solución dada no funciona en mi servidor,
sed '4i\ toto' -> sed: command garbled: 4i\ toto
Leí el tutorial en el sitio pero los ejemplos no son muy claros, al menos para mí.
Gracias
sed '4i\ toto' -> sed: command garbled: 4i\ toto
Leí el tutorial en el sitio pero los ejemplos no son muy claros, al menos para mí.
Gracias
Sí, Toto, es válido para un ejemplo, siempre tengo el problema sed: command garbled
estoy en Solaris 9.
Gracias
estoy en Solaris 9.
Gracias
Intenta así:
--
JP - Criador de pingüinos -
Haz un gesto por el medioambiente, cierra tus ventanas y adopta un pingüino.
num=4; sed \"$num a\\ Mais je sens que ça va venir \" fichier.txt;-))
--
JP - Criador de pingüinos -
Haz un gesto por el medioambiente, cierra tus ventanas y adopta un pingüino.
Hola,
o con perl ;-) (no lo he probado)
--
106485010510997108
o con perl ;-) (no lo he probado)
perl -pi.orig -e 'print "Mais je sens que ça va venir\n" if $. == 3"' fichier.txt
--
106485010510997108
Entonces no conozco perla, pero bueno lo intenté y me dio:
String found where operator expected at -e line 1, at end of line
(Missing semicolon on previous line?)
Can't find string terminator '"' anywhere before EOF at -e line 1.
Gracias
String found where operator expected at -e line 1, at end of line
(Missing semicolon on previous line?)
Can't find string terminator '"' anywhere before EOF at -e line 1.
Gracias
Ups, he añadido una comilla de más ;-)
--
106485010510997108
perl -pi.orig -e 'print "Pero siento que va a venir\n" if $. == 3' archivo.txt
--
106485010510997108
Funciona pero no es estable, te explico: cuando lo lanzo tal como me lo diste funciona, pero cuando lo adapto a mi script añadiendo variables, genera duplicados en mis archivos, especialmente al escribir en la última línea.
Mi uso: reemplazar variables.
perl -pi.tmp -e 'print "toto\n" if $. == 11' fichier.txt
fichier.txt
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
# jours fériés), les dates sont au format JJ/MM/AAAA.
# jours fériés), les dates sont au format JJ/MM/AAAA.
Apres adaptation
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
14/07/2006
Mais je sens que ça va venir -> tester via la commande non adaptée
Merci
Mi uso: reemplazar variables.
perl -pi.tmp -e 'print "toto\n" if $. == 11' fichier.txt
fichier.txt
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# Fichier de configuration contenant les jours non ouvrables de la société (Pentecôte,
# jours fériés), les dates sont au format JJ/MM/AAAA.
# jours fériés), les dates sont au format JJ/MM/AAAA.
# jours fériés), les dates sont au format JJ/MM/AAAA.
Apres adaptation
# jours fériés), les dates sont au format JJ/MM/AAAA.
14/07/2006
14/07/2006
Mais je sens que ça va venir -> tester via la commande non adaptée
Merci
Essaye ça :
--
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
num=4; sed "$num s/.*/&\nMais je sens que ça va venir/" fichier.txt;-))
--
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
Creo que no estamos lejos, el comando funciona pero no devuelve una nueva línea:
num=4; sed "$num s/.*/&\n Pero siento que va a venir/" archivo.txt
# Archivo de configuración que contiene los días no laborables de la empresa (Pentecostés,
# días festivos), las fechas están en formato DD/MM/AAAA.
14/07/2006
17/07/2006Pero siento que va a venir
18/07/2006
15/08/2006
si pudiéramos insertar un salto de línea sería perfecto.
Gracias
num=4; sed "$num s/.*/&\n Pero siento que va a venir/" archivo.txt
# Archivo de configuración que contiene los días no laborables de la empresa (Pentecostés,
# días festivos), las fechas están en formato DD/MM/AAAA.
14/07/2006
17/07/2006Pero siento que va a venir
18/07/2006
15/08/2006
si pudiéramos insertar un salto de línea sería perfecto.
Gracias
Añade un "anti-slash":
--
JP - Criador de pingüinos -
Haz un gesto por el medio ambiente, cierra tus ventanas y adopta un pingüino.
sed "$num s/.*/&\\n Mais je sens que ça va venir/";-))
--
JP - Criador de pingüinos -
Haz un gesto por el medio ambiente, cierra tus ventanas y adopta un pingüino.
Hola,
He intentado de verdad pero no hay forma de que haga un salto de línea, también probé las '' "" sin éxito.
Gracias
He intentado de verdad pero no hay forma de que haga un salto de línea, también probé las '' "" sin éxito.
Gracias
Hola,
que mal; me he decidido por redirigir el texto en mi archivo, así que hago una inserción al final del archivo,
echo $text >> $mon_fichier
gracias a todos.
que mal; me he decidido por redirigir el texto en mi archivo, así que hago una inserción al final del archivo,
echo $text >> $mon_fichier
gracias a todos.
Hola, Recurro a ti porque estoy muy contento con mi último puesto. Siempre tengo dificultades con el comando sed. Quiero añadir una línea en un archivo de texto, pero quiero poder insertarla después de la línea de mi elección. jp@MDK:~/tmpfs ssh$ num=4; sed "$num a\Pero siento que eso va a venir" fichier.txt Hola, Recurro a ti porque estoy muy contento con mi último puesto. Siempre tengo dificultades con el comando sed. Pero siento que eso va a venir Quiero añadir una línea en un archivo de texto, pero quiero poder insertarla después de la línea de mi elección. jp@MDK:~/tmpfs ssh$;-))
--
JP - Criador de pingüinos -
Haz un gesto por el medio ambiente, cierra tus ventanas y adopta un pingüino.
--
JP - Criador de pingüinos -
Haz un gesto por el medio ambiente, cierra tus ventanas y adopta un pingüino.