Linux/Unix Shell Scripting - Ventana de dialog no me funciona por espacios en blanco

 
Vista:
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Ventana de dialog no me funciona por espacios en blanco

Publicado por Francisco Javier (13 intervenciones) el 19/01/2015 22:12:31
Hola a todos.

Tengo un script que no me funciona en"dialog" debido a espacios en blanco en uno de los campos, paso a poner parte del script donde pongo primero lo que funciona y después lo que me interesa y que no funciona..

1
dialog --checklist "Que campos quieres ver de los registros?" 0 0 3 "1" "Nombre Apellidos" "on" "2" "Domicilio" "on" "3" "Telefono" "on" 2> /tmp/salida.txt
este funciona, pero este no
1
2
campos_final='"1" "Nombre Apellidos" "on" "2" "Domicilio" "on" "3" "Telefono" "on"'
dialog --checklist "Que campos quieres ver de los registros?" 0 0 3 $campos_final 2> /tmp/salida.txt
No se hacerlo de una forma fácil, igual con sed se podría mediante la sustitución del espacio en blanco por un guión por ejemplo, algo así
1
echo $campos_final | sed 's/\s/_/'
pero asi también me une los demás campos que deben tener su espacio en blanco, quedaría así

"1"_"Nombre_Apellidos"_"on"_ "2"_....bla bla y solo debe ser el que está entre Nombre y Apellido

Alguien con experiencia en sed y regulares me echa un cable?

Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 13
Ha aumentado 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Ventana de dialog no me funciona por espacios en blanco

Publicado por Francisco Javier (13 intervenciones) el 19/01/2015 23:10:59
Para ese "escenario" en concreto tengo ya la solución, a base de pruebas y error, porque no tengo idea de expresiones regulares y sed, pero sería algo así

echo '"1" "Nombre Apellido"'|sed 's/\(\w.*\)\s\(\w*\)/\1_\2/g'

Pero no me vale tampoco, ya que se puede dar el caso de que haya mas espacios en campos, veamos otro escenario

echo '"1" "Nombre Apellidos" "on" "2" "y ahora que"'|sed 's/\(\w.*\)\s\(\w*\)/\1_\2/g'

esto da como resultado:

"1" "Nombre Apellidos" "on" "2" "y ahora_que"

pero no pone el que está entre Nombre y Apellido y el que está entre "y" y "ahora", en fin, seguiré investigando... ayuda..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar