viernes, 9 de septiembre de 2011

Sesión 6 Comandos para procesar texto

grep
Filtra y resalta el texto de un archivo mediante palabras clave

Ejemplo:
mi-usuario@maquina:~$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash


head 
Muestra las primeras líneas de un archivo (si no se le indica el número de líneas por default imprime 10)

Ejemplo:
mi-usuario@maquina:~$ head ~/.bashrc

.bash_history  .bash_logout   .bashrc      
carmeth@Toshiba-lap:~$ head .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace
mi-usuario@maquina:~$


tail
Muestra las últimas líneas de un archivo (si no se le indica el número de líneas por default imprime 10)

Ejemplo:
mi-usuario@maquina:~$ tail -n 5 /etc/passwd
rtkit:x:110:117:RealtimeKit,,,:/proc:/bin/false
haldaemon:x:114:124:Hardware abstraction layer,,,:/var/run/hald:/bin/false
mysql:x:115:125:MySQL Server,,,:/nonexistent:/bin/false
sshd:x:116:65534::/var/run/sshd:/usr/sbin/nologin
carmeth:x:1003:1004:carmeth,,,,:/home/carmeth:/bin/bash
mi-usuario@maquina:~$


wc
Cuenta el número de líneas, palabras y bytes de un archivo

Ejemplo:
mi-usuario@maquina:~$ wc /etc/passwd
  38   61 1969 /etc/passwd



sort
Ordena alfabéticamente las líneas de un archivo

Ejemplo:
mi-usuario@maquina:~$ sort /etc/passwd

avahi-autoipd:x:103:108:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
avahi:x:104:109:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
backup:x:34:34:backup:/var/backups:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
carmeth:x:1003:1004:carmeth,,,,:/home/carmeth:/bin/bash
couchdb:x:105:113:CouchDB Administrator,,,:/var/lib/couchdb:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
- - Se omite el resto de la salida de este comando - -




uniq
Omite las líneas repetidas de un archivo

Ejemplo:
mi-usuario@maquina:~$ cat archivo-repetido


Este es el contenido de archivo-repetido
esta línea se repite
esta línea se repite
esta línea ya no se repite
otra línea
otra línea
línea de contenido
línea de contenido



Ahora ejecutamos el comando uniq sobre este archivo para que omita las líneas repetidas
mi-usuario@maquina:~$ uniq archivo-repetido


Este es el contenido de archivo-repetido
esta línea se repite
esta línea ya no se repite
otra línea
línea de contenido


diff
Imprime las líneas que sean distintas entre 2 archivos 

Ejemplo:

mi-usuario@maquina:~$ cat archivo-repetido
Este es el contenido de archivo-repetido
esta línea se repite
esta línea se repite
esta línea ya no se repite 
otra línea
otra línea
línea de contenido
línea de contenido

mi-usuario@maquina:~$ cat archivo-repetido.backup
Este es el contenido de archivo-repetido.backup
esta línea se repite
esta línea se repite
esta línea ya no se repite 
otra línea **distinta**
otra línea
línea de contenido **cambiada**
línea de contenido

mi-usuario@maquina:~$ diff archivo-repetido archivo-repetido.backup 
1c1
< Este es el contenido de archivo-repetido
---
> Este es el contenido de archivo-repetido.backup
4a5
> otra línea **distinta**
6,7c7
< otra línea
< línea de contenido
---
> línea de contenido **cambiada**


cut
"Corta" dependiendo los campos y delimitadores que se le especifiquen

Ejemplo:
Para este ejemplo vamos a utilizar el archivo passwd, el cual esta separado por columnas, demitadas por el caracter : ahora veamos como se utiliza el comando cut
mi-usuario@maquina:~$ cut -d: -f 1 /etc/passwd
root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
proxy
www-data
- - El resto de la salida se omite - -

Ahora prueba utilizando otros delimitadores y otros campos



No hay comentarios:

Publicar un comentario