Agregar salto de línea
wida
Mensajes publicados
170
Estado
Miembro
-
dubcek Mensajes publicados 18627 Fecha de registro Estado Colaborador Última intervención -
dubcek Mensajes publicados 18627 Fecha de registro Estado Colaborador Última intervención -
Hola,
uso este comando para tener un salto de línea cada vez que encuentro un signo '+':
sed 's/+/\n/g'
Pero en lugar de tener un salto de línea, ¡tengo un simple espacio! ¿sabes por qué? ¿qué está mal con este comando?
Gracias por tu intervención :-)
--
El sueño no conduce a nada, la acción a todo.
(J. FIAUX).
uso este comando para tener un salto de línea cada vez que encuentro un signo '+':
sed 's/+/\n/g'
Pero en lugar de tener un salto de línea, ¡tengo un simple espacio! ¿sabes por qué? ¿qué está mal con este comando?
Gracias por tu intervención :-)
--
El sueño no conduce a nada, la acción a todo.
(J. FIAUX).
Configuración: Linux Fedora / Firefox 3.5.1
12 respuestas
-
Hola,
#!/bin/bash Máquinas=maquina1+maquina2+maquina3 lista=$(echo $Máquinas | sed 's/+/\n/g') echo "$lista"
--
106485010510997108 -
Re,
Te he dicho lo que hacer. Hay que usar las comillas para la visualización.
lami20j@debian-acer:~/livres_tutoriaux/pcasm/linux-ex$ cat plus.sh #!/bin/bash Machines=machine1+machine2+machine3 lista=$(echo $Machines | sed 's/+/\n/g') lista2=`echo "$lista"` echo "$lista2" lami20j@debian-acer:~/livres_tutoriaux/pcasm/linux-ex$ sh plus.sh machine1 machine2 machine3
--
106485010510997108-
justamente no es la visualización lo que me interesa, sino el contenido de la variable..
--
El sueño no lleva a nada, la acción a todo.
(J. FIAUX).- En el ejemplo anterior, hice el echo solo para verificar el contenido de la variable liste2
aquí hay otro ejemplo:
allMachine='' for i in 1 4 7 10; do Machines=machine$i+machine$(i+1)+machine$(i+2) liste=$(echo $Machines | sed 's/+/\n/g') allMachine=$allMachine' '$Machines done
el objetivo es tener la lista de todas las máquinas en allMachine para poder realizar tareas en estas máquinas. Así que realmente no tengo nada que hacer con la visualización, solo era para ver el contenido de las variables
--
El sueño no lleva a nada, la acción a todo.
(J. FIAUX).
-
-
Hola,
Raro en efecto ;-\
¿Qué versión de "sed"?
¿Qué shell?
¿En un archivo Unix?
--
$ man woman
No hay página de manual para woman. -
de hecho, estoy comenzando con linux y no sé cómo obtener toda esta información!!
lanso el comando desde un script, pero si lo ejecuto directamente desde el shell no hay ningún problema!
--
El sueño no lleva a nada, la acción lo lleva todo.
(J. FIAUX). -
#!/bin/bash Máquinas=maquina1+maquina2+maquina3 lista=` echo $Máquinas | sed 's/+/\n/g'` echo $lista
--
El sueño no lleva a nada, la acción a todo.
(J. FIAUX). -
en realidad me doy cuenta de una cosa, si hago esto:
Máquinas=máquina1+máquina2+máquina3 echo $Máquinas | sed 's/+/\n/g'
funciona bien, pero la otra manera de hacer no funciona nunca!!
--
El sueño no lleva a nada, la acción lo consigue todo.
(J. FIAUX). -
¡Realmente necesito poner el resultado en una variable! ¡No veo cómo hacerlo sin volver al caso inicial!
--
El sueño no lleva a nada, la acción lo lleva todo.
(J. FIAUX). -
Mira la respuesta de "lami20j", o entonces:
#!/bin/bash Máquinas=maquina1+maquina2+maquina3 echo -e "${Máquinas//+/\n}"
--
$ man mujer
No hay página de manual para mujer. -
Merci, funciona bien, pero en realidad hay siempre un problema cuando uso la variable lista! Quiero que el salto de línea esté en la variable, no solo en la visualización
ejemplo:#!/bin/bash Máquinas=maquina1+maquina2+maquina3 lista=$(echo $Máquinas | sed 's/+/\n/g') lista2=`echo "$lista"` echo $lista2
lista2 contiene exactamente el mismo valor que lista
--
El sueño no lleva a nada, la acción lo lleva todo.
(J. FIAUX). -
Re,
¿Entonces quieres esto?lami20j@debian-acer:~/libros_tutoriales/pcasm/linux-ex$ cat plus.sh #!/bin/bash Máquinas=machine1+machine2+machine3 lista=$(echo $Máquinas | sed 's/+/\\n/g') lista2=$(echo $lista) echo $lista echo -e $lista lami20j@debian-acer:~/libros_tutoriales/pcasm/linux-ex$ sh plus.sh machine1\nmachine2\nmachine3 machine1 machine2 machine3
--
106485010510997108 -
Re,
así que realmente no tengo nada que hacer con la visualización, solo era para ver el contenido de las variables
¡Cálmate, ¿de acuerdo?!
Estamos tratando de ayudarte y para poder hacerlo primero debemos entender qué es lo que quieres.
Por el momento no veo qué es lo que deseas, así que solo estoy tanteando el terreno.
Si quieres ver el contenido de la variable, entonces solo tienes que hacerlo así, no necesitas sed
lami20j@debian-acer:~/livres_tutoriaux/pcasm/linux-ex$ cat plus.sh #!/bin/bash Machines=machine1+machine2+machine3 IFS='+' for m in $Machines do echo $m done lami20j@debian-acer:~/livres_tutoriaux/pcasm/linux-ex$ sh plus.sh machine1 machine2 machine3
--
106485010510997108-
aparentemente me he expresado mal!! Así que lo retomo,
la variable Machines contiene esto:Machines=maquina1+maquina2+maquina3
quiero que la variable lista contenga esto:lista= maquina1 maquina2 maquina3
después de los comandos que realizo verifico si mi variable lista contiene lo que quiero, así que hago esto:
echo $lista
este códigoecho "$lista"
o esteecho -e $lista
da una salida perfecta, pero no cambia nada en el contenido de mi variable!! No sé si ahora está más claro!!!
--
El sueño no lleva a nada, la acción lo lleva todo.
(J. FIAUX).
-
-
si haces
$ set|grep lista
lista=$'máquina1\nmáquina2\nmáquina3'
la variable contiene bien lo que quieres