Consultas, desarrollo de programas y petición de presupuestos:

jueves, 12 de julio de 2012

comandos sort y cut

Comando Sort: Ordenación
Se basa en ordenar lineas de un fichero. Y también por ordenar por columnas, el separador de columna que usa por defecto es el espacio en blanco (“ “).
sort opciones fichero
-k nº : indica el campo por el que quiero ordenar y seguirá ordenandolo si es igual por las siguientes columnas (6,7,...), si no pones nada ordena la linea
-n : toma el valor como numerico a comparar y no como texto
-r : orden inverso
-R : desordenar, aleatoriamente
-t “caracter”: indica otro separador de columna.
-u : hace que la ordenacion sea unica, es decir elimina los duplicados (quita la linea duplicada)


Ejemplo de uso:
ls -l | sort
(ordenaria por la primera columna, la de los permisos)

ls l | sort -k 8
(ordenaria por la 8 columnas, la de los nombres)

ls l | sort -k 5
lo ordena por el tamaño entendiendo el numero como texto.

ls l | sort -k 5 -n
lo ordena por el tamaño entendiendo el numero como valor


Ejemplo:
cat /etc/passwd | sort -k 3 -n -t “:”


Comando cut:
Sirve para cortar trozos de una linea.
Le tenemos que indicar la columna que nos interesa y el limitador.
-d “caracter”: carácter limitador
-f campo: columna/s que nos interesa, separadas por comas

Ejemplo:
cat /etc/passwd | sort -k 3 -n -t “:” | cut -d “:” -f 1
Obtengo la lista de nombre , ordenada por numero de usuario, y solo muestra la columna 1

cat /etc/passwd | sort -k 3 -n -t “:” | cut -d “:” -f 1,3
Podemos ver como lo ha ordenando teniendo en cuenta la columna 3, y nos muestra el nombre y la columna 3.

Mas opciones:
-b : bytes
-c : caracteres

Las opciones:
-f
-b
-c


n,n1
Columna n y n1
n-
Desde ese numero hasta el final
n-M
Desde n hasta M
-M
Desde el principio hasta M


N,n1,n2-m
Se admiten combinaciones



Ifconfig
Muestra datos de configuracion de los distintos interfaces.

Ejecicio:
Montar una comando que nos muestre nuestra ip de nuestra wlan0

ifconfig wlan0 | cut -d ":" -f 2 | cut -d " " -f1 | head -n 2 | tail -n 1

otra forma:

ifconfig wlan0 | grep inet: | cut -d ":" -f 2 | cut -d " " -f1

No hay comentarios:

Publicar un comentario