Jump to content

ayuda bash script


Recommended Posts

Hola, lo que quiero es que esto.

 

Tengo 2 archivos, supongamos que sus nombre son: ArchivoA y ArchivoB.

 

Resulta que en ArchivoA tengo el siguiente script

 

#!/bin/bash

#       port=0
        max_port=0
        for i in `cat /var/www/html/etiqueta/Switch_Franjeados | awk 'BEGIN {FS=","} {print $2}'`;
        do
                echo i=$i, max_port= $max_port;
                if [ "$i" -gt "$max_port" ]
                then
                        let  "max_port = $i"
                        echo max-port= $max_port
                fi
        done

 

Lo que hace este script es que me indica cual es el numero del puerto maximo, en este caso del Switch Franjeados.

 

Entonces lo que quiero hacer es (me imagino que a traves del comando sed) poder colocarlo en cierta posicion del ArchivoB.

 

Porque por ejemplo

 

si el ArchivoA me dice que el puerto maximo es 23.

 

en el ArchivoB hay 2 lineas asi

 

nodo Switch23

LabelAAAAA

 

Entonces lo que quiero que me quede

 

nodo Switch23

Label23

 

Que tome el 23 del archivoA y lo coloque en el archivoB despues de label

 

 

El problema es que no cacho como poder hacerlo :S

Edited by nkdos
Link to comment
Share on other sites

Prueba con esto

sed -i "s/AAAAA/$max_port/" ArchivoB

Podrías pegar un par de lineas del archivo /var/www/html/etiqueta/Switch_Franjeados para ver su formato.

 

Para obtener el mayor puerto, prueba con esto (nose el formato de los datos):

MAX_PORT=$(sort -n -k 2 -t, archivo.txt | head -n1 | awk -F, '{print $2}')

Edited by nunacho
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...