Edición de archivo de texto

Comentarios sobre el buen funcionamiento del sistema y como personalizarlo a tus necesidades.

Moderadores: doc, mcun

Responder
rodolfomarroquin
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Mar Jun 07, 2016 8:06 pm

Edición de archivo de texto

Mensaje por rodolfomarroquin »

Compitas

Hace rato que vengo craneando la forma de solucionar el problema que expondré, lamentablemente mi nivel de bash todavía no es el adecuado para solucionarlo :( , el caso es el siguiente:

Hace un tiempo exporte todas las reglas de firewall fortinet:
config firewall policy
edit 486
set name "hroman test
set uuid dae691ec-7512-51e6-266f-3f68f6c819bf
set srcintf "ssl.root"
set dstintf "LAN"
set srcaddr "SSLVPN_TUNNEL_SMA_DESA"
set dstaddr "esb-prod-10.15.0.159" "DESTINO-SMA-DESA"
set action accept
set schedule "always"
set service "ALL"
set groups "GRUPO_SMA-DESA"
next
edit 492
set name "VPN SMA"
set uuid 37844cc6-38bb-51e6-de0c-be243e1604e8
set srcintf "VPN_SMA"
set dstintf "LAN"
set srcaddr "sma-group-wso2-esb"
set dstaddr "Group_WSO2_PROD"
set action accept
set schedule "always"
set service "ALL"
next
.
.
. (asi sigue con 430 reglas)

EL tema esta en que quiero ordenar las reglas para que se vean en columnas y no en filas, esto para pasarlas a un excel y asi poder auditarlas de una manera mas amigable, he intentado muchos comandos (split, awk, tar, etc) pero tal parece que no se puede realizar tan solo con un comando por lo que se necesita realizar un script para dicha tarea (hasta el momento mi scripting no va bien, soy un tanto new. Espero me puedan ayudar :).

Nota:

Las reglas se podrían dividir con split si todas tuvieran un rango idéntico, pero lamentablemente no es asi :/, algunas poseen 9 filas otras 10 filas y así.

Estaré atento a algún buen samaritano que acepte el desafió :D

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1837
Registrado: Dom Oct 10, 2004 7:00 am

Re: Edición de archivo de texto

Mensaje por neurus »

No entiendo.

Código: Seleccionar todo

cat archivo |tr "\n" "," > archivonuevo.csv
¿Eso estás buscando? No es ningún desafío.
Aunque supongo que el resultado que buscas es otro. El problema es que no queda claro cuál.

Cuando planteas estas cuestiones, en primer lugar, debes usar las etiquetas "code", como hice yo en el código acá arriba, para que sea más legible.
En segundo lugar, puedes tomarte el trabajo de separar dos o tres renglones y, nuevamente entre etiquetas "code", mostrar cómo quisieras que queden.

rodolfomarroquin
Forista Nuevo
Forista Nuevo
Mensajes: 5
Registrado: Mar Jun 07, 2016 8:06 pm

Re: Edición de archivo de texto

Mensaje por rodolfomarroquin »

Ante todo muchas gracias por la ayuda compa,

mira lo que realmente necesitaba es lo siguiente:

edit 486 set name "hroman test set uuid dae691ec-7512-51e6-266f-3f68f6c819bf set srcintf "ssl.root" set dstintf "LAN" set srcaddr "SSLVPN_TUNNEL_SMA_DESA" set dstaddr "esb-prod-10.15.0.159" "DESTINO-SMA-DESA"set action accept set schedule "always" set service "ALL"set groups "GRUPO_SMA-DESA" next

edit 492 set name "VPN SMA"set uuid 37844cc6-38bb-51e6-de0c-be243e1604e8 set srcintf "VPN_SMA" set dstintf "LAN" set srcaddr "sma-group-wso2-esb" set dstaddr "Group_WSO2_PROD" set action accept set schedule "always" set service "ALL" next

onda que cada regla del firewall ocupara solo una fila del excel, no que aparecieran todas juntas como aparecen en el ejemplo que me colocaste. Si me puedes ayudar bkn y si no muchas gracias por darte el tiempo :).

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1837
Registrado: Dom Oct 10, 2004 7:00 am

Re: Edición de archivo de texto

Mensaje por neurus »

Te repito: usa las etiquetas "code". No se requiere inteligencia suprema para advertir que lo que posteas como ejemplo es ilegible. Sólo hace falta algo de buena intención para con el lector.

En el ejemplo que coloqué, no aparece nada "todo junto". Es un archivo csv. Se abre como archivo csv, en Excel o similar.

En el ejemplo que colocaste, no hay una regla por fila. Ahí sí están todas las reglas juntas.

Es decir: por un lado dices que necesitas que no estén todas las reglas en una línea, y me pones como ejemplo, todas las reglas, sin distinción, en una línea. Algo como lo del ejemplo que posteaste ahora, se logra con el mismo comando de arriba, cambiando la coma por un espacio, y la extensión del archivo de salida a txt.

Y dando otra explicación de lo que quieres. La opuesta, más o menos. O estamos llamando "regla" a cosas completamente diferentes.

O te aclaras, o me doy por vencido.

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje