[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Mostrar listado con cabeceras y bien tabulado(bash scripting)



El mié, 24-01-2007 a las 17:07 +0100, gesala gesala escribió:
> Eup!!!!!
> Estoy intentando hacer un pequeño programa en bash que pasandole como
> argumentos una maquina remota y un directorio, compare dicho
> directorio en las 2 maquinas y saque una especie de informe.
> El programa como tal lo tengo hecho. Lo único que a la hora de mostrar
> los datos queda un poco feo. Me explico:
> El programa tiene un menu con una serie de opciones:
> 1.- Ficheros solo existentes en local
> 2.- Ficheros solo existentes en remoto
> 3.- Diferencias de permisos
> 4.- Diferencias de propietario
> 5.- Diferencias de tamaño
> 
> Tiene más opciones pero no viene al caso.
> Cuando no son muchos los ficheros diferentes no hay problema, pero si
> son muchos no queda bien.
> La cuestion es que me interesaria hacer una especie de paginacion y
> cabeceras (imaginaos que pulso la opcion 5 y existen 100 ficheros con
> tamaños diferentes) :
> {
> Fichero                Tam. Remoto               Tam. Local
> -----------------------------------------------------------------------------
> tmp                                    500                         100
> messages.log                   1678                        6789
> ....
> ....
> ....
> debian.iso                    6786888                    567778
> kk.txt                                   23                            12
> 
> Pulse una tecla para continuar
> }
> 
> 
> Al pulsar la tecla nos iria sacando las siguientes paginas hasta el final:
> 
> {
> Fichero                Tam. Remoto               Tam. Local
> -----------------------------------------------------------------------------
> passwd                              455                            78
> 
> 
> Fin de informe. Pulse una tecla.
> 
> 
> }
> 
> La verdad es que estoy mirando varios manuales de bash pero no veo
> ninguno que explique este tipo de cosas.
> 

¿Sabes programar en C?

Usa printf:

:~$ printf "%10s %10s\n" $HOME $USERNAME

Resultado
/home/usuario      usuario

Pasa como parámetro el numero de caracteres que quieres que ocupe cada
cadena, por ejemplo %10s imprime un string  10 caracteres (rellena con
espacios si es menos, corta si es mayor)


Saludos
-- 
http://soleup.eup.uva.es/mariodebian

Attachment: signature.asc
Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente


Reply to: