Sei sulla pagina 1di 14

FILTROS DE COMANDOS

EN LINUX
ÍNDICE
1. Filtros en Linux
2. Mostrar salida de un fichero paginada: more, less
3. Visualizar las primeras/ultimas líneas de un fichero: head, tail
4. Ordenar el contenido de un fichero: sort
5. Eliminar, comprobar duplicados en fichero ordenado: uniq
6. Extraer estadísticas de un fichero: wc
7. Extraer campos de un fichero: cut
8. Buscar patrones: grep
9. Comando de búsqueda de ficheros y ejecución find -exec
Filtros en Linux
o El intérprete de comandos nos permite alterar las entradas y salidas
estándares de los comandos de forma que podemos tomar datos de
otros dispositivos al teclado y escribirlos en otros dispositivos
distintos de la pantalla. En general estos dispositivos serán ficheros y
otros comandos.
o Los comandos que nos permiten filtrar la información de salida def
otro comando se denominan filtros, y suelen ir detrás del símbolo de
tubería o pipe (|). Los más importantes son:
 more: muestra la salida paginada  wc: cuenta el número de palabras,
 less: muestra la salida paginada bytes
 tail: muestra sólo las últimas líneas  tr: para sustituir un carácter en un
 head: muestra sólo las primeras archivo
líneas  cut: sirve para extraer elementos
 sort: para ordenar un archivo de un fichero
 uniq: para eliminar duplicados  grep: busca una cadena en la
entrada
Paginación: More, Less
MORE:
Muestra página por página, avanza con espacio. Se puede
utilizar de dos formas:
•more archivo
•Comando|more

LESS:
Igual que more, puede ir hacia atrás con tecla ‘b’. Formato:
•less archivo
•comando|less
Visualizar líneas: Head, Tail
HEAD
Muestra las primeras n líneas de un fichero. Se utiliza mucho
para ver cabeceras de mensaje de correo (sender, asunto, etc)
• Uso: head –n fichero
Ej: Mostrar las 10 primeras líneas del fichero /etc/group
head -10 /etc/group
TAIL
Muestra las últimas n líneas de un fichero. Se utiliza mucho
para ver ficheros de log, los últimos errores.
• Uso: tail –n fichero
Ej: Mostrar las 10 últimas líneas del fichero syslog
$ tail -10 /var/log/syslog
Ordenar el contenido: sort
Ordena el contenido de un fichero. Se puede ordenar alfabética o
numéricamente por orden normal o inverso: Muestra la salida por
pantalla, y permite redirección a fichero ordenado:
$ sort fichero >ficheroOrdenado
• Ordenar en orden numérico ascendente 1ª palabra (-n)
$ cat clasificacion.txt | sort –n
• Ordenar en orden numérico descendente 1ª palabra (-nr)
$ cat clasificacion.txt |sort –nr
• Ordenar en orden alfabético 1ª palabra ascendente
$ cat clasificacion.txt | sort
• Ordenar en orden alfabético 1ª palabra descendente (-r)
$ cat clasificacion.txt | sort –r
• Ordenar alfabético por columnas (-k) , detrás de k nº de colum.
$ cat clasificacion.txt | sort –k3
• Ordenar un fichero de campos, eligiendo el campo (-t, -k)
$ cat clasificacion.txt |sort –t: -k2
ordena 2º campo, con separador:
Duplicados en un fichero: uniq
Comprueba y/o elimina los duplicados de un fichero. Ojo el archivo
debe estar ordenado (las líneas duplicadas una detrás de otra en el
fichero), por ello se suele utilizar a continuación de sort.
$ sort fichero | uniq
• Contar número de líneas repetidas en un fichero (-c)
$ sort clasificación.txt |uniq –c
• Eliminar líneas repetidas iguales (-u)
$ sort clasificación.txt |uniq –u
Extraer estadísticas de un fichero: wc
Permite extraer estadísticas simples de un archivo de texto.
La estadística puede ser contar líneas, caracteres, etc.
• Contar el número de líneas de un fichero. Con la opción –l.
$ cat ‘fichero’ | wc –l
• Contar el número de caracteres de un fichero. Con la opción –c.
$ cat ‘fichero’ | wc –c
Transliterar caracteres: tr
Translitera una serie de caracteres dentro desde la salida estándar.
Permite borrar o reemplazar caracteres. Se puede redireccionar a un
fichero.
• Eliminar caracteres indicados (-d)
$ cat clasificacion.txt |tr –d 1 > sin1
borra el número 1 del fichero clasificacion y lo guarda en sin1.
• Pasar de minúsculas a mayúsculas un texto [:lower:] [:upper:]
$ echo “Hola” | tr [:lower:] [:upper]
Convierte el texto Hola a hola
• Eliminar caracteres repetidos (-s)
$ cat fichero | tr –s “a”
borra a seguidas repetidas.
Extraer campos de un fichero: Cut
CUT
Extrae un campo de un fichero con separadores de campo. Se utiliza
mucho con /etc/passwd o /etc/group para obtener listados.
Uso: $cut –d ”separador” –f “campos a extraer”
• Extraer un único campo
$ cat /etc/passwd | cut –d “:” –f 1 ; extrae los login
• Extraer varios campos
$ cat /etc/passwd | cut –d “:” –f 1,3 ; extrae los login y uid
Buscar patrones: Grep
Busca en un fichero de entrada las líneas que coinciden con el patrón
indicado. La línea que contiene el patrón es enviada por defecto a la
salida estándar, aunque se pueden especificar otras.
• Sintaxis:
$ grep [opciones] [expresión regular] [archivo]
• Ejemplos
$ ps -ef | grep $USER
$ grep $usuario /etc/passwd
$ cat /etc/passwd | grep –e “Pili” –e “Mili”
• Mostrar las líneas que contienen palabras exactas
La opción –w busca la palabra exacta y no concordancias. Ej: En un
sistema con los usuarios Pepe y Pepe1;
$ cat etc/passwd | cut d “:” -f 1 | grep –w “Pepe”
Solamente devolvería 1 resultado: Pepe.
$ cat etc/passwd | cut d “:” -f 1 | grep “Pepe”
Devolvería Pepe y Pepe1
Buscar ficheros: Find
1.- Búsqueda de archivos
find ruta -opciones
● Opciones:
find /home -name a* → los que comienzan por a
find /home -size +10M → los mayores de 10 MB
find /home -mmin -5 → los modificados hace menos de 5 minutos.
find /home -mtime -5 → los modificados hace menos de 5 días.
find /home -type f -atime -7 → los archivos accedidos hace menos
de una semana.
Buscar ficheros: Find
Para ejecutar un comando con cada archivo encontrado:
find ruta -opciones -exec comando ‘{}’ \;
● Ejemplo:

find /home -name *.jpg –exec cp /imagenes ‘{}’ \;


→ copia los archivos encontrados a la carpeta /imagenes
find /home -size +100M –exec rm ‘{}’ \;
 borra los archivos de /home mayores a 100 MB.
Gracias!!

Potrebbero piacerti anche