Foros del Web » Administración de Sistemas » Unix / Linux »

Bash script, condicionar filtros en un texto ??

Estas en el tema de Bash script, condicionar filtros en un texto ?? en el foro de Unix / Linux en Foros del Web. Aha.. tal vez no quedo muy claro con el titulo (estaba haciendo otro script de filtros de texto y puse eso!), pero lo que quiero ...
  #1 (permalink)  
Antiguo 06/04/2006, 17:45
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Bash script, condicionar filtros en un texto ??

Aha.. tal vez no quedo muy claro con el titulo (estaba haciendo otro script de filtros de texto y puse eso!), pero lo que quiero hacer es lo siguiente... listar un directorio, pero en el resultado SOLO debe listar los archivos que pertenezcan a los usuarios, y no a root, en el siguiente caso solo quisiera listar los archivos y que solo aparezcan los que pertenecen a los usuarios "wolox" y "masterjoke"... puedo hacerlo indicandolo desde un grep, lo se.. pero en un sistema con 100 usuarios por ej.. quiero que sea algo "inteligente" este script..

Código:
root@domination [/home]# ls -alh
drwx--x--x   14 root     root         4.0K abr  6 17:42 ./
drwxr-xr-x   24 root     root         4.0K abr  4 10:43 ../
drwxr-xr-x    5 root     root         4.0K ago 27  2005 .urban/
drwx------    3 root     root         4.0K dic 29 07:58 .ftpinstall/
drwx------    3 wolox     wolox         4.0K dic 29 07:58 wolox/
drwx------    2 masterjoke     masterjoke        4.0K oct  7 00:45 masterjoke/
Alguna ayuda ??
  #2 (permalink)  
Antiguo 06/04/2006, 18:13
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Podes usar la opcion "invertida" de grep. Con eso filtras "root" y muestra el resto:
Código:
ls -lah | grep -v "root"
Saludos.
__________________
¡Volviendo a la programación!
  #3 (permalink)  
Antiguo 06/04/2006, 18:20
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Gracicas ale!! siempre salvandom el traste!

Ahora si mi ultima duda, y luego los dejo en paz...

Tengo un archivo "dominos" que contiene:

dominio.com
dominio2.com
pepepe.net
blalala.com
subdominii.dominio.com
subdominio.pepee.net

Y lo que quiero hacer, es que desde un grep me liste solo el dominio, sin el "subdominio." no se si me entiedes.. que solo liste los dominios por mas que haya subdominios.. y seria bueno que directamente no repira el dominio por cada subdominio, sino que lo liste una vez sola.. estoy pidiendo mucho ?? :p

thkz!

Última edición por Sh4ka; 06/04/2006 a las 18:31
  #4 (permalink)  
Antiguo 06/04/2006, 18:38
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Bue, eso es mas complejo.
Habria que hacer (si es que no esta hecha) una funcion que valide los dominios, para que solo entregue el dominio principal. Deberia validar el final, para decir que ".com" ".com.ar" ".org" ".tv" son finales validos, y ".toto" ".mal" no lo son.
De ahi vas hacia atras (hacia el principio de la cadena) hasta encontrar un punto o el principio de la cadena y ya tienes el dominio.

Con esto hay que ponerse a pensar y a programar.
Saludos!
__________________
¡Volviendo a la programación!
  #5 (permalink)  
Antiguo 07/04/2006, 08:19
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Hmmm... probemos con expresiones regulares. Las líneas que contienen un dominio están compuestas por:

- Inicio de la línea (^)
- Una serie de caracteres que comprende letras mayúsculas, letras minúsculas, cifras, y guiones. ([A-Za-z0-9_\-])
- Un punto.
- Una nueva serie de caracteres que comprende letras mayúsculas, minúsculas, cifras y guiones. ([A-Za-z0-9_\-])
- Fin de línea ($)

Montemos una expresión regular con todo eso:

^[A-Za-z0-9_\-][A-Za-z0-9_\-]*\.[A-Za-z0-9_\-][A-Za-z0-9_\-]*$

Usa grep para filtrar todas las líneas que no se correspondan con este patrón, y listo.

De todas maneras necesitaría que me confirmarais que los dominios están formados sólo por esos caracteres. A mí no se me ocurre ningún otro que pueda formar parte de un dominio, pero nunca se sabe.


Ooooops... ahora que me doy cuenta... esto borraría un dominio que se llamara miweb.com.ar, al considerarlo un subdominio. Si en tu lista hay dominios de este tipo (no sé cómo se llaman), mi expresión regular no te sirve para nada.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #6 (permalink)  
Antiguo 07/04/2006, 08:29
Avatar de ociomax
Colaborador
 
Fecha de Ingreso: mayo-2002
Ubicación: Temuco, Chile
Mensajes: 5.595
Antigüedad: 22 años
Puntos: 35
Otra cosa: para evitar los duplicados puedes usar "uniq". Algo así como:
Código:
cat /tu_archivo | filtros_varios | uniq
Como siempre, más info en "man uniq" .
__________________
Christian González, "OCIOMax"
http://chgonzalez.blogspot.com
http://twitter.com/chgonzalez
  #7 (permalink)  
Antiguo 07/04/2006, 08:48
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
Que capo con las expresiones regulares!!! Me gustaria tener esa facilidad, son una asignatura pendiente.

No nos desanimemos.

Habria que hacer otra expresion que tome una lista valida de dominios de primer nivel por paises (http://en.wikipedia.org/wiki/Country...p-level_domain)
y los dominios de primer nivel genericos (http://en.wikipedia.org/wiki/Generic_top-level_domain)

Entonces:
  • Tomamos la cadena de texto desde el ultimo punto hasta el final.
  • ¿Es valida contra la lista de paises?
    • Si: tomamos la cadena de texto desde el anteultimo punto hasta el ultimo.
    • ¿Es valida contra la lista de genericos?
      • Si: deducimos que es un dominio de primer nivel con pais.
      • No: deducimos que es un dominio invalido. (1)
    • No
    • ¿Es valida contra la lista de genericos?
      • Si: deducimos que es un dominio de primer nivel sin pais.
      • No: es un dominio invalido.

Creo estar en lo correcto. Cualquier cosa me corrijen.
Saludos!!!
__________________
¡Volviendo a la programación!
  #8 (permalink)  
Antiguo 07/04/2006, 09:14
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Cita:
Iniciado por AleSanchez
Que capo con las expresiones regulares!!! Me gustaria tener esa facilidad, son una asignatura pendiente. (...)
Yo las conozco a un nivel muy básico y rudimentario, y la verdad es que me han sido de gran ayuda para ciertas tareas. Lo más complicado que he llegado a hacer ha sido esto y esto. Con el primero en concreto lo que buscaba era convertir un texto plano en esto, sin tener que escribir a mano cada etiqueta HTML.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable

Última edición por -Defero-; 07/04/2006 a las 16:12
  #9 (permalink)  
Antiguo 07/04/2006, 10:02
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 19 años, 7 meses
Puntos: 47
No se ven los articulos de Barrapunto...

Y como serian las expresiones regulares para lo que planteé arriba?
__________________
¡Volviendo a la programación!
  #10 (permalink)  
Antiguo 07/04/2006, 11:36
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 21 años, 9 meses
Puntos: 29
Hay muchisimo software que te facilita la tarea...


çSaludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #11 (permalink)  
Antiguo 07/04/2006, 16:14
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 9 meses
Puntos: 76
Cita:
Iniciado por AleSanchez
No se ven los articulos de Barrapunto...
Es que había puesto mal los enlaces, pero ya los he corregido.

Cita:
Y como serian las expresiones regulares para lo que planteé arriba?
Hou, hou, hou... ya he dicho que mi nivel es muy básico. Siento no poder contestar a esa pregunta.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #12 (permalink)  
Antiguo 07/04/2006, 17:29
Avatar de Sh4ka  
Fecha de Ingreso: marzo-2005
Mensajes: 205
Antigüedad: 19 años, 1 mes
Puntos: 0
Many thanks!! recien acabo de ver el post, luego les comento como me fue cuando termine el script!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:39.