LPIC 103.2 Process Text Streams Using Filters

Continuamos un dia mas con el curso, aqui ni los domingos se descansa. Esta vez veremos algo con un poco menos de peso que el anterior, pero aun asi es algo muy importante. De nuevo no solo para la certificacion, si trabajamos en entornos de linux procesar textos mediante filtros sera totalmente fundamental y basico para nuestro dia a dia. Vamos pues alla con el estudio de hoy.

Peso:

Este apartado tiene un peso de 3 sobre 4.

Comandos y ficheros útiles

Introducción:

Este capitulo se basa practicamente en saber usar el redireccionador y la tuberia (pipe) y complementarla con los muchos comando que veremos en este capitulo. Arriba os he dejado los enlaces a las paginas de ayuda las cuales deberias mirar ya que estos comandos se usan dia si dia tambien en entornos de administracion de linux. Yo tan solo dare una breve descripcion de los comandos asi como una aun mas breve explicacion de lo que hacen los principales argumentos que se les pueden pasar. Mi consejo es que cojais la consola y probeis a hacer varias cosas con estos comando sea como mas aprendereis y ademas no se os olvidara.

Los comandos:

cat
Para lo que mas se usa es para mostrar por pantalla o enviar a otro fichero el contenido de un fichero. Las opciones que se suelen usar:
-s mostrar solo una linea en blanco, si hay varias mostrar solo una seguida.
-v mostrar los caracteres no visibles
-A muestra todo los caracteres no visibles, $ al final de la linea y los tabs como ^I

cut
Muestra solo la columna que se indique, pero no modifica el fichero de origen.
-blist muestra las posiciones que ocupen el bye indicado
-clist muestra las posiciones que ocupen la columna del caracter indicado
-ddelim modifica el delimitador, por defecto es ;
-flist muestra la columna indicada (teniendo cuenta el delimitador dado)

expand
Convierte tabulados en espacios. Por defecto cada tabulado es considera 8 espacios. Aunque este valor podemos modificarlo con la opcion
-t seguido del nuevo valor.
-i Solo lo modifica en las lineas iniciales que se indique

fmt
Formatea un texto para que ocupe una anchura determinada. Para ello rellena lineas y elimina saltos de linea cuando asi sea necesario. Puede usarse concatenando varios ficheros si le son pasados varios.

-u usa lo que llama el espaciado uniforme. Esto es un espacio entre palabras y dos entre frases.
-w width indica la anchura a la que queremos formatearlo. Por defecto este valor es 75

head
Imprime tan solo las primeras x lineas de un fichero, es decir la cabecera.

-c n tan solo los primeros n bytes del fichero. Si n lo seguimos de k serian kilobytes, m megabytes.
-nn muestra las n primeras lineas, por defecto muestra 10

join
Une un campo del fichero 1 con un campo del fichero 2. Tienen que tener un primer campo que sea igual en ambos ficheros y que ambos ficheros esten ordenados. Si tenemos esto podemos indicar que campos queremos que se muestren de cada fichero, jugando con estas opciones

-j1campo ; el campo del fichero primero que queremos mostrar
-j2campo : el campo del fichero segundo que queremos mostrar
-jfield : los campos que queremos mostrar, en este caso coincidentes en los dos ficheros

nl
Numera cada una de las lineas de un fichero y las saca de esta forma por consola. Los comandos tipicos son:
-b style : para elegir el estilo de numeracion, por defecto t
-f style : estilo de numeracion para el footer, por defecto n
-h style : estilo de numeracion para el header, por defecto n

Los estilos pueden ser:
A : numera todas las lineas
t : numera solo las que no sean lineas vacias
n : no numera las lineas
pREGEXP
Number only lines that contain a match for regular expression REGEXP.

od
Sirve para mostrar ficheros en octal

paste
Une columnas de distintos ficheros, como join pero mas simple.

-dn en lugar de usar tab como separados, separa por elcaracter n
-s pone cada linea en una columa… es mas dificil de explicar que de explicar con un ejemplo…

Si el fichero1 tiene
1
2
3

Y el fichero2 tiene
A
B
C

Y hacemos paste -s fichero1 fichero , tedriamos como salida
1 2 3
A B C

pr
Convierte un texto a un texto paginado y en columnas.

sort
Un texto dado es ordenado de forma alfabetica. Hay varias opciones interesantes:
-f el orden es case sensitive
-kPOS1 indicamos el inicio del orden y si queremos seguiro de una coma podemos indicar el final de este
-n indicamos que el orden que queremos que sea numerico
-r orden inverso
-tSEP cambiamos el separador por depfecto por el que indiquemos en SEP, por defento es un espacio en blanco

split
Divide un fichero en segmentos, indicamos el tamaño del segmento con la opcion -n

tac
Hace lo mismo que cat pero imprimendo las lineas en el orden inverso.

tail
Como head, pero en lugar de mostrar las primeras lineas muestra las ultimas. Tiene las mismas opciones salvo la opcion:

-f que muestra la cola constante, es muy util para leer logs en tiempo real

tr
Sirve para transformar cadenas, tipicamente para cambiar de minusculas a mayusculas.

unexpand
Es el comando inverso de expand, convierte espacios en tabs.

uniq
Solo funciona con ficheros ordenados (ver sort) si hay lieas repetidas las elimina.
-d imprime las lineas unicas, es decir las no repetidas

wc
Cuenta las palabras
-u cuenta las unicas, sin repetir

Estos han sido todos los comandos, como habeis visto son muchos y los he comentado muy por encima ahora os toca a vosotros trastearlos y echar un vistazo a sus ficheros man.

Mañana mas… y mejor!

Los comentarios están cerrados.