You are on page 1of 9

Comandos Linux.

Filtros y
Redireccionamiento
Filtros o tuberas
Las tuberas o filtros utilizan en una lnea de comandos para conectar la salida estndar de
un comando con la entrada estndar de otro. Para ello se utiliza el caracter |.

Redireccionamiento
Cualquier proceso tiene una entrada estndar, stdin, y dos salidas, la salida
estndar, stdout, y la salida de errores, stderr.
Normalmente, la entrada estandar, stdin, es el teclado y la salida estndar,stdout, es la
pantalla, pero si se produjo un error en la ejecucin del proceso la salida por pantalla
corresponder a la salida de errores stderr.
Sin embargo puede que queramos cambiar la entrada estandar, la salida estndar o la
salida de errores por un fichero. Para ello utilizamos los redireccionamientos, con los
siguientes caracteres:

< Redirecciona la entrada estandar sustituyndola por el archivo que se le indique.


> Redirecciona la salida de un proceso al fichero que se le indique, borrando la
informacin que le fichero contena.
> > Redirecciona la salida de un proceso al fichero que se le indique, pero aadiendola
al final del fichero, sin borrar su contenido previo.
2> Redirecciona la salida de errores de un proceso al fichero que se le indique,
borrando la informacin que el fichero contena.
2> > Redirecciona la salida de errores de un proceso al fichero que se le indique, pero
aadiendola al final del fichero, sin borrar su contenido previo.
En todos los casos, si el ficherio indicado no existe, se crea.

Comandos relacionados
grep
Muestra las lneas de un fichero dado que coinciden con un cierto patrn
Sintaxis:
grep [opciones] patrn [fichero/s]

Opciones:
-r|-R| recursive
Para buscar de forma recursiva dentro de los ficheros de un directorio.

-n|line-number
Muestra el nmero correspondiente al lugar que ocupa en el fichero la lnea encontrada.

-i|ignore-case
No distingue entre maysculas y minsculas.

-v|invert-match
Muestra las lneas que no se corresponden con el patrn.

-c|count
Escribe el nmero de lneas que satisfacen la condicin.

-l|files-with-matches
Se escriben los nombres de los ficheros que contienen las lneas buscadas.
Patrn:
texto lneas que contengan la cadena texto
^texto lneas que empiezan por texto
^[texto] lneas que no empiezan por texto
texto$ lneas que terminan por texto
Ejemplos

Lneas que contiene la cadena de caracteres ivan en el fichero /etc/passwd

$ grep ivan /etc/passwd


ivan:x:1000:1000:ivan,,,:/home/ivan:/bin/bash

Utilizando tuberas:

$ cat /etc/passwd | grep ivan


ivan:x:1000:1000:ivan,,,:/home/ivan:/bin/bash

Lneas que terminan por bash en el fichero /etc/passwd

$ grep bash$ /etc/passwd


root:x:0:0:root:/root:/bin/bash
ivan:x:1000:1000:ivan,,,:/home/ivan:/bin/bash

couchdb:x:114:126:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
user:x:1001:1001:user,,,:/home/user:/bin/bash

cut
Muestra slo ciertas lneas verticales (campos) de los ficheros que se le pasen como
argumento.
Sintaxis:
cut [opciones] [fichero/s]

Opciones:

-c|characters=lista
Muestra solo los caracteres que se le especifiquen

-d|delimiter=delim
Usa el caracter que se le especifique como delimitador en vez del tabulador

-f|fields=lista
Muestra solo los campos que se le indiquen en lista. Puede ser un campo, una serie de
campos separados por comas, y un rango

-s|ooonly-delimited
No muestra las lneas que contengan el delimitador.
output-delimiter=cadena
Usa cadena como delimitador de salida en vez del delimitador de la entrada.

Ejemplos
Muestra los campos 1, 3 y 7 del fichero /etc/passwd

$ cut -d: -f1,3,7 /etc/passwd


root:0:/bin/bash
daemon:1:/bin/sh
bin:2:/bin/sh

...

Muestra los campos del 3 al 5 del fichero /etc/passwd

$ cut -d: -f3-5 /etc/passwd


0:0:root
1:1:daemon
2:2:bin
3:3:sys

Muestra a partir del tercer campo del fichero /etc/passwd

$ cut -d: -f3- /etc/passwd


0:0:root:/root:/bin/bash
1:1:daemon:/usr/sbin:/bin/sh
2:2:bin:/bin:/bin/sh
3:3:sys:/dev:/bin/sh

Uso de tuberas. Muestra el nombre de usuario, el UID y el shell del usuario ivan. Sustituye
el delimitador : por un espacio.

$ grep ivan /etc/passwd | cut -d: -f1,3,7 --output-delimiter=" "


ivan 1000 /bin/bash

wc
Muestra el nmero de lneas, palabras, caracteres y/o bytes de los ficheros que se le
indiquen, o el tamao de la lnea ms larga.
Sintaxis:

wc [opciones] fichero/s

Opciones:

-c|bytes
Muestra el nmero de bytes

-m|chars
Muestra el nmero de caracteres

-l|lines
Muestra el nmero de lneas.

-w|words
Muestra el nmero de palabras.

-L|max-line-length
Muestra el tamao de la lnea ms larga del fichero
Ejemplos
Nmero de lneas y de palabras del fichero /etc/passwd

$ wc -l -w /etc/passwd
41

67 /etc/passwd

Utilizando tuberas. Nmero de usuarios del sistema que utilizan /bin/bash como shell:

$ grep /bin/bash$ /etc/passwd | wc -l


4

sort
Muestra en orden ascendente, descendente o numrico el contenido de los ficheros que se
les pasa como argumentos.
Sintaxis:
sort [opciones] [fichero/s]

Opciones:

-c|check
Comprueba que el fichero est ordenado, pero no lo ordena. Si no est ordenando te
muestra un mensaje mostrando la primera lnea que est fuera de orden.

-r|reverse
Ordena en sentido inverso.

-n|numeric
Ordena por orden numrico en lugar de alfabtico que es la opcin por defecto.

-u|unique
Elimina las lneas repetidas
Ejemplos
Muestra el fichero /etc/passwd en orden inverso

$ sort -r /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
user:x:1001:1001:user,,,:/home/user:/bin/bash
usbmux:x:107:46:usbmux daemon,,,:/home/usbmux:/bin/false
sys:x:3:3:sys:/dev:/bin/sh

Utilizando tuberas. Muestra por orden numrico el UID, el GID y el shell de la informacin
contenida en /etc/passwd

$ cut -d: -f3,4,6 /etc/passwd | sort -n


0:0:/root
1:1:/usr/sbin
2:2:/bin
3:3:/dev

4:65534:/bin
5:60:/usr/games
6:12:/var/cache/man
7:7:/var/spool/lpd
8:8:/var/mail
9:9:/var/spool/news
10:10:/var/spool/uucp
13:13:/bin
33:33:/var/www
34:34:/var/backups
38:38:/var/list
39:39:/var/run/ircd
41:41:/var/lib/gnats
100:101:/var/lib/libuuid
101:103:/home/syslog
102:105:/var/lib/colord
103:107:/var/run/dbus
104:108:/var/lib/lightdm
105:112:/var/lib/avahi-autoipd
106:113:/var/run/avahi-daemon
107:46:/home/usbmux
108:65534:/

109:119:/var/run/pulse
110:122:/proc
111:29:/var/run/speech-dispatcher
112:7:/var/run/hplip
113:123:/home/saned
114:126:/var/lib/couchdb
115:65534:/var/run/sshd
116:127:/var/cache/bind
117:128:/nonexistent
118:129:/var/lib/gdm
119:130:/home/ntp
120:131:/var/lib/clamav
1000:1000:/home/ivan
1001:1001:/home/user
65534:65534:/nonexistent

tr
El comando tr dado un flujo de datos (entrada estndar) nos permite modificarlos
sustituyendo y/o borrando carcteres. tr [OPCIN] SET1 [SET2]
Sintaxis:
tr [OPCIN] SET1 [SET2]
Opciones:

-d Borrar los carcteres indicados en SET1


-s Elimina o reemplaza los carcteres repetidos indicados en SET1
-c Todos los carcteres que no sean los indicados en SET1 los convierte en SET2

-t Trunca SET1 a la longitud de SET2


Ejemplos
Pasar las vocales a maysculas

$ echo murcielago | tr aeiou AEIOU


mUrcIElAgO

Mostrar el contenido de /etc/passwd sustituyendo los dos puntos : por espacios

$ cat /etc/passwd | tr : " "


root x 0 0 root /root /bin/bash
bin x 1 1 bin /bin /bin/false
daemon x 2 2 daemon /sbin /bin/false
mail x 8 12 mail /var/spool/mail /bin/false
...

Mostrar el contenido de la carpeta actual en formato largo eliminando los espacios


duplicados

$ ls -l | tr -s " "
total 42996
-rw-r--r-- 1 ivan users 221623 oct 26 22:31 143354-AdwaitaWolfeV4.tar.gz
-rw-r--r-- 1 ivan users 128 ago 25 16:05 AUTHORS
-rw-r--r-- 1 ivan users 1138 nov 16 13:32 ChangeLog
...

You might also like