Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Portada » Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 7 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Ene 26, 2018 1:41 am
Mensajes: 7

Nota Publicado: Vie Ene 26, 2018 2:02 am 
Arriba  
Hola que tal amig@s

Este es mi primer post y quisiera ver si es posible realizar esto en bash linux o python:

Tengo el siguiente archivo de texto con los siguientes datos:

object network Red_Contabilidad
subnet 172.21.0.0 255.255.255.0
object network Red Central
subnet 10.0.0.0 255.0.0.0
object network Red Perimetro
subnet 10.0.20.0 255.255.255.0
object network Red Interna2
subnet 10.0.24.0 255.255.255.0
object network SRVLINUX
host 192.168.1.2
object network PC Juan
host 192.168.16.200

Donde lo clave y que no cambia son las lineas:
object network (Este seria el nombre del objeto que tendra el siguiente valor en la linea a continuacion)
subnet (Este seria el valor del object network de arriba, en este caso es una SUBRED)
o
host (Este seria el valor del object network de arriba, en este caso es un HOST IP)

Como haria o pudiese hacerlo para que quede de la siguiente manera:

Red_Contabilidad 172.21.0.0 255.255.255.0
Red Central 10.0.0.0 255.0.0.0
Red Perimetro 10.0.20.0 255.255.255.0
Red Interna2 10.0.24.0 255.255.255.0
SRVLINUX 192.168.1.2
PC Juan 192.168.16.200

Espero que aunque este sea mi primer post no sea tan hard!

Gracias de antemano.

 Perfil  

Desconectado
Forista Legendario
Forista Legendario
Avatar de Usuario

Registrado: Dom Oct 10, 2004 7:00 am
Mensajes: 1790

Nota Publicado: Vie Ene 26, 2018 2:58 am 
Arriba  
No sería la forma más prolija de hacerlo, pero sí la más rápida, al menos para mí:

digamos que el archivo se llama redes.txt

Código:
cat redes.txt |sed 's/object network//g'|sed 's/subnet//g'>archivointermedio
paste -s -d"\t\n" archivointermedio > final


Lo que dejaría el resultado en un archivo llamado final.

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Ene 26, 2018 1:41 am
Mensajes: 7

Nota Publicado: Vie Ene 26, 2018 5:48 pm 
Arriba  
neurus escribió:
No sería la forma más prolija de hacerlo, pero sí la más rápida, al menos para mí:

digamos que el archivo se llama redes.txt

Código:
cat redes.txt |sed 's/object network//g'|sed 's/subnet//g'>archivointermedio
paste -s -d"\t\n" archivointermedio > final


Lo que dejaría el resultado en un archivo llamado final.


Hola NeuRus, mil gracias por tu gran aporte, fijate que lo probe y funciono tal cual, el gran problema que tengo es que el archivo esta compuesto por una seria de lineas mas diferentes a las expuesta, aunque la seccion que me interesa es la que plantie anteriomente y a como tu me indicas.

Como seria para indicarle unicamente para imprimir los valores de los patrones marcados en negro, es decir su valor.

 Perfil  

Desconectado
Forista Legendario
Forista Legendario
Avatar de Usuario

Registrado: Dom Oct 10, 2004 7:00 am
Mensajes: 1790

Nota Publicado: Sab Ene 27, 2018 4:08 am 
Arriba  
En ese caso, construyes el archivo previamente filtrado, con grep.

cat archivo|grep -e "object" -e "subnet" -e "host"> otro archivo.

Y acabo de ver que al código de arriba habría que quitarle host usando sed. Te queda de tarea.


Última edición por neurus el Sab Ene 27, 2018 4:09 am, editado 1 vez en total
 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Ene 26, 2018 1:41 am
Mensajes: 7

Nota Publicado: Sab Ene 27, 2018 4:11 am 
Arriba  
neurus escribió:
En ese caso, construyes el archivo previamente filtrado, con grep.

cat archivo|grep -e "object" -e "host"> otro archivo.


Gracias nuevamente amigo,

La verdad disculpas por darle tanto vuelta al asunto, pero ya vi que sera mas conveniente poner todo el archivo, a como realmente se me presenta :

Los valores de host y subnet se presentan o se mandan a llamar en otro tipo de comando a aplicar:

object network obj-172.21.0.0
subnet 172.21.0.0 255.255.255.0
object network obj-192.168.16.200
host 192.168.16.200
object network obj-192.168.21.5
host 192.168.21.5
object network obj-192.168.20.0
subnet 192.168.20.0 255.255.255.0
object network obj-192.168.22.0
subnet 192.168.22.0 255.255.255.0
object network obj-192.168.23.0
subnet 192.168.23.0 255.255.255.0
object network obj-192.168.0.0
subnet 192.168.0.0 255.255.0.0
object network obj-telefono
host 192.168.16.200
object network obj-10.0.10.0
subnet 10.0.10.0 255.255.255.0
object network obj-10.0.11.0
subnet 10.0.11.0 255.255.255.0
object network obj-10.1.0.0
subnet 10.1.0.0 255.255.255.0
object network obj-192.168.1.0
subnet 192.168.1.0 255.255.255.0
object network obj-10.0.13.0
subnet 10.0.13.0 255.255.255.0
object network obj-10.0.15.0
subnet 10.0.15.0 255.255.255.0
object network obj-10.0.16.0
subnet 10.0.16.0 255.255.255.0
object network obj-10.0.12.0
subnet 10.0.12.0 255.255.255.0
object network obj-10.0.14.0
subnet 10.0.14.0 255.255.255.0
object network obj-10.0.17.0
subnet 10.0.17.0 255.255.255.0
object network obj-10.0.18.0
subnet 10.0.18.0 255.255.255.0
object network obj-10.0.22.0
subnet 10.0.22.0 255.255.255.0
object network obj-10.0.19.0
subnet 10.0.19.0 255.255.255.0
object network obj-10.0.23.0
subnet 10.0.23.0 255.255.255.0
object network obj-10.0.25.0
subnet 10.0.25.0 255.255.255.0
object network obj-10.0.27.0
subnet 10.0.27.0 255.255.255.0
object network obj-10.0.28.0
subnet 10.0.28.0 255.255.255.0
object network obj-10.0.29.0
subnet 10.0.29.0 255.255.255.0
object network obj-10.0.30.0
subnet 10.0.30.0 255.255.255.0
object network obj-192.168.106.0
subnet 192.168.106.0 255.255.255.0
object network obj-192.168.107.0
subnet 192.168.107.0 255.255.255.0
object network obj-192.168.1.3
host 192.168.1.3
object network obj-10.0.0.0
subnet 10.0.0.0 255.0.0.0
object network obj-10.0.20.0
subnet 10.0.20.0 255.255.255.0
object network obj-10.0.24.0
subnet 10.0.24.0 255.255.255.0
object network SRVLINUX
host 192.168.1.2
object network obj-192.168.1.11
host 192.168.1.11
object network SRVCSEXC01
host 192.168.20.136
object network obj-192.168.20.3
host 192.168.20.3
object network obj-192.168.20.12
host 192.168.20.12
nat (inside,any) source static obj-192.168.0.0 obj-192.168.0.0 destination static obj-10.0.28.0 obj-10.0.28.0
nat (inside,any) source static obj-192.168.0.0 obj-192.168.0.0 destination static obj-10.0.27.0 obj-10.0.27.0
nat (inside,any) source static obj-192.168.0.0 obj-192.168.0.0 destination static obj-10.0.26.0 obj-10.0.26.0
nat (inside,any) source static obj-192.168.0.0 obj-192.168.0.0 destination static obj-10.0.25.0 obj-10.0.25.0
nat (inside,any) source static obj-192.168.0.0 obj-192.168.0.0 destination static obj-10.0.23.0 obj-10.0.23.0
nat (inside,any) source static obj-192.168.0.0 obj-192.168.0.0 destination static obj-10.0.22.0 obj-10.0.22.0
nat (inside,any) source static obj-192.168.0.0 obj-192.168.0.0 destination static obj-10.0.20.0 obj-10.0.20.0
access-list acl_inside extended permit ip object-group Servers any
access-list acl_inside extended permit ip object-group TI any
access-list acl_inside extended permit udp host 192.168.6.1 host 192.168.0.4 eq snmptrap
access-list acl_inside extended permit udp any any eq isakmp
access-list acl_inside extended permit esp any any
access-list acl_inside extended permit ip 192.168.0.0 255.255.0.0 192.168.1.0 255.255.255.0
access-list acl_inside extended permit udp host 192.168.20.10 host 192.168.0.156 eq snmp
access-list acl_inside extended permit udp host 192.168.20.10 host 192.168.0.156 eq snmptrap
access-list acl_inside extended permit ip host 192.168.50.250 10.0.0.0 255.255.0.0
access-list acl_inside extended permit tcp host 192.168.0.35 host 190.112.222.138 range ftp-data ftp
access-list acl_inside extended permit ip 192.168.0.0 255.255.0.0 10.0.30.0 255.255.255.0
access-list acl_inside extended permit icmp any any echo
access-list acl_inside extended permit icmp any any echo-reply
access-list acl_inside extended permit ip 192.168.0.0 255.255.0.0 10.0.32.0 255.255.255.0
access-list acl_inside extended permit icmp any any traceroute
access-list acl_inside extended permit ip 192.168.23.0 255.255.255.0 any
access-list acl_inside extended permit ip host 192.168.0.251 172.21.0.0 255.255.255.0
access-list acl_inside extended permit ip host 192.168.0.126 host 190.107.208.116
access-list acl_inside extended permit ip host 192.168.0.126 host 190.212.182.236
access-list acl_inside extended permit udp host 192.168.20.150 any eq domain
access-list acl_inside extended permit udp host 192.168.20.160 any eq domain
access-list acl_inside extended permit tcp host 192.168.20.160 any eq domain
access-list acl_inside extended permit tcp host 192.168.20.150 any eq domain
access-list acl_inside extended permit tcp host 192.168.20.7 host 190.112.222.138

 Perfil  

Desconectado
Forista Legendario
Forista Legendario
Avatar de Usuario

Registrado: Dom Oct 10, 2004 7:00 am
Mensajes: 1790

Nota Publicado: Sab Ene 27, 2018 4:13 am 
Arriba  
Eso es de Squid. Y ya te di casi toda la solución. Sólo deberías agregar grep -v access (-v invierte el patrón) para eliminar el resto de las líneas que tienen, por ejemplo, la palabra host, pero empiezan con access.

 Perfil  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Ene 26, 2018 1:41 am
Mensajes: 7

Nota Publicado: Sab Ene 27, 2018 4:17 am 
Arriba  
neurus escribió:
Eso es de Squid. Y ya te di casi toda la solución. Sólo deberías agregar grep -v access (-v invierte el patrón) para eliminar el resto de las líneas que tienen, por ejemplo, la palabra host, pero empiezan con access.


Gracias amigo lo testeare y lo posteare aca, de hecho eso es de un Cisco ASA es el show run del archivo de configuracion de ese Firewall.

Nuevamente gracias.

Saludos.

 Perfil  
Mostrar mensajes previos:  Ordenar por  
 [ 7 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


 Temas relacionados   Autor   Respuestas   Vistas   Último mensaje 
Leer y escribir archivo txt - SOLUCIONADO -

en Programación

antopv

7

5150

Mar Ene 26, 2010 6:06 pm

Deckon Ver último mensaje

Comprobar si un archivo se ha copiado en bash

en Programación

karac00l

4

2187

Vie Oct 02, 2009 10:31 am

karac00l Ver último mensaje

Validar nombre archivo bash

en Programación

fedexpando

6

3883

Lun Ago 24, 2009 8:27 pm

fedexpando Ver último mensaje

separar archivo de texto por palabra con bash

en Software

argi_123

4

4473

Jue Jul 16, 2009 4:09 pm

Pratt Ver último mensaje

Reemplazar cadena de texto en nombre de archivo en bash?

en Programación

hipersayan_x

3

979

Sab Ago 14, 2010 11:51 pm

akodo Ver último mensaje



¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC + 1 hora [ DST ]
Traducción al español por Huan Manwë
phpBB SEO