Bash: obtener el número total de campos (SOLUCIONADO)

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
Misura
Forista Nuevo
Forista Nuevo
Mensajes: 6
Registrado: Jue Ago 23, 2012 8:47 pm

Bash: obtener el número total de campos (SOLUCIONADO)

Mensaje por Misura » Vie Ago 24, 2012 5:33 am

Holas!!

Quería saber si alguien sabe como hacer lo siguiente en bash: :?

Si tengo una cadena, por ejemplo "./d1/d2/d3/fich.c", que es la ruta de un fichero, ¿cómo podría saber el número de campos que tiene esta cadena si el delimitador es '/' ??? En este caso el número de campos si separo la cadena por '/' es 5 ( . , d1, d2, d3 y fich)


¿Cómo podría hacerlo?

Mil gracias!! :hi:

Editado -- Vie Ago 24, 2012 5:33 am --

o, sino, al menos el poder recorrer esta cadena campo a campo... (poniendo a '/' como delimitador)

gracias sólo por tomaros las molestias en leerme ^^
Última edición por Misura el Vie Ago 24, 2012 7:37 pm, editado 1 vez en total.
Avatar de Usuario
hipersayan_x
Forista Legendario
Forista Legendario
Mensajes: 1905
Registrado: Vie Abr 27, 2007 7:00 am
Contactar:

Re: Bash: obtener el número total de campos

Mensaje por hipersayan_x » Vie Ago 24, 2012 6:36 am

Código: Seleccionar todo

echo './d1/d2/d3/fich.c'|awk -F '/' '{for(i=1; i<=NF; i++)printf "%s ", $i}'|wc -w
usando awk dividís la cadena usando la barra / como separador e imprimís desde el indice 1 hasta el último, y finalmente contás las palabras con wc.
Desarrollo en Qt: Qt Developer Network
Mis proyectos: github | SourceForge.net
Avatar de Usuario
Misura
Forista Nuevo
Forista Nuevo
Mensajes: 6
Registrado: Jue Ago 23, 2012 8:47 pm

Re: Bash: obtener el número total de campos

Mensaje por Misura » Vie Ago 24, 2012 6:39 am

genial!!! Muchas gracias. Justo lo que necesitaba!!

Un saludo.
Avatar de Usuario
hipersayan_x
Forista Legendario
Forista Legendario
Mensajes: 1905
Registrado: Vie Abr 27, 2007 7:00 am
Contactar:

Re: Bash: obtener el número total de campos

Mensaje por hipersayan_x » Vie Ago 24, 2012 3:35 pm

Ahora que me acuerdo, esta es otra forma más:

Código: Seleccionar todo

echo './d1/d2/d3/fich.c'|sed 's/ /_/g'|sed 's/\// /g'|wc -w
Primero reemplazas los espacios por _ y después las barras por espacios y contás las palabras.
Desarrollo en Qt: Qt Developer Network
Mis proyectos: github | SourceForge.net
Avatar de Usuario
Misura
Forista Nuevo
Forista Nuevo
Mensajes: 6
Registrado: Jue Ago 23, 2012 8:47 pm

Re: Bash: obtener el número total de campos

Mensaje por Misura » Vie Ago 24, 2012 7:27 pm

Muchas gracias! porque yo le estaba dando mil vueltas y no conseguía que me saliera :-)
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: Bash: obtener el número total de campos

Mensaje por mcun » Vie Ago 24, 2012 7:31 pm

Misura Si consideras que el tema fue resuelto, por favor edita el primer post y agrégale al título (SOLUCIONADO) para que la ayuda que recibiste le sea útil a otros usuarios mediante el uso del buscador. Muchas Gracias
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje