Tabla de Contenidos

Tratamiento de Texto en Unix II

Teclado

Continuando con estas herramientas de manejo de texto.

Como Chequear Ortografía

Lo que debemos instalar previo a poder usar una aplicación que permite chequear la ortografía sobre archivos de texto es la aplicación:

El primer comando es para Linux y el segundo es para ser instalado en OSX, ambos Unix permiten corregir la ortografía de archivos de texto plano.

El comando para chequear la ortografía es:

aspell -c -l es archivo_texto.txt

Como filtramos listados

Hay herramientas muy poderosas sobre texto en Unix/Linux, tal como sed desde la consola, pondremos un sólo ejemplo que nos permite ver su versatilidad.

sed -e '/^;/d' /etc/php.ini --> Filtra el caracter ';'
sed -e '/^#/d' file1.txt    --> Filtra el caracter '#'

Este comando nos elimina de la salida todos las líneas de los caracteres que comienzan con ; o con # y nos permite ver las sentencias del archivo que son las que influyen en su configuración, dado que la gran mayoría son comentarios y documentación de cada parámetro.

La segunda forma es usar el comando grep de esta forma:

cat file1.txt | grep -v ';' > file2.txt
cat file1.txt | grep -v '#' > file2.txt

Este comando entrega su salida a un archivo file2.txt con el contenido de las líneas útiles, sacando los comentarios y la documentación del archivo file1.txt, suponiendo que estos comienzan con el caracter ; o el carácter #.

Como unir archivos rar en Linux

Muchos usuarios linux se preguntan eso, sobre todo cuando están recien llegados y no conocen las poderosas herramientas disponibles en Linux o en algún Unix. Para ello deberemos disponer de los paquetes instalados en nuestro sistema, con este comando en consola:

# aptitude update
# aptitude install rar && aptitude install unrar

Una vez que hemos instalado estos paquetes en forma correcta, lo que deberemos hacer para juntar varios archivos rar en un sólo archivo es con el siguiente comando en consola:

$ unrar x archivo_rar.parte1.rar

Lo que la aplicación hace es descomprimir la primera parte del archivo y sucesivamente va por las siguientes partes, ya que la información de la parte siguiente se encuentra en el formato rar de la primera parte.

Uso de PDFTK

Esta herramienta permite manipular PDF's, permite extraer páginas, combinarlas, combinar varios PDF's en uno sólo de salida, en fin se pueden realizar varios tipos de manipulaciones con esta herramienta, como ejemplo tenemos el siguiente comando en consola, que permite extraer paginas no n archivo:

Instalando PDFTK

El comando a continuación permite realizar la instalación en Linux con una distro derivada de Debian:

# aptitude install pdftk

Para otras distros ver pdftk.

Extraer Páginas no Secuenciales

$ pdftk A=origen.pdf cat A1 A2 A11 A16 A23 A29 A35 A37  output salida.pdf

Este comando permite extraer las páginas 1,2,11,16,23,29,35,37 del archivo origen.pdf y los deja en otro archivo llamado salida.pdf.

Extraer Páginas Secuenciales

$ pdftk A=origen.pdf cat A1-6  output salida.pdf

Este comando permite extraer las páginas desde la 1 a la 6 del archivo origen.pdf y los deja en otro archivo llamado salida.pdf.

Combinar 2 PDF's en Otro PDF

$ pdftk A=origen1.pdf B=origen2.pdf cat A1-4 B3-6 output salida.pdf 

Este comando permite extraer del archivo origen1.pdf las páginas 1 a la 4, y del archivo origen2.pdf desde la 3 a la 6 y sacarlas a un archivo de salida.pdf.

Hay otra combinación de posibilidades de este comando que es posible realizar pero con estos comandos tenemos para empezar.

Como Eliminar Algunas Páginas de un PDF

Hay veces que hemos combinado varios PDF's en un único documento de varias páginas y necesitamos eliminar algunas páginas, en el siguiente ejemplo tenemos un documento de 59 páginas y queremos eliminar la 2, 28 y la 47, lo hacemos de la siguiente forma:

pdftk origen.pdf cat 1 3-27 29-46 48-59 output salida.pdf

El documento salida.pdf tiene eliminadas las páginas indicadas.

Manipulando PDF's

pdf

En paralelo a PDFTK existe otra aplicación Unix que permite realizar una tarea específica con los PDF, que es poder transformar un PDF de varias paginas, en donde tiene una página por cara de la hoja a combinar 2 páginas por cara de la hoja, eso permite imprimir a media página en forma horizontal por página, lo que permite ahorrar en papel y por otro lado disponer de dos páginas en la misma cara de la hoja.

Este cambio se realiza con al herramienta pdfnup que son parte de las herramientas del paquete PDFjam, las cuales existen en Unix (Linux, BSD y OSX).

Como se utiliza esta herramienta:

$ pdfnup --nup 2x1 archivo_entrada.pdf

Esto generará un archivo llamado archivo_entrada-nup.pdf que corresponde a la salida del archivo de entrada ya modificado.

Para modificar el nombre del archivo de salida podemos utilizar el comando siguiente:

pdfnup --nup 2x1 --suffix "2x1" archivo_entrada.pdf

Esto permite generar un archivo de salida en el mismo directorio, con el nombre de archivo_antrada-2×1.pdf.

Cambiar Permisos a una Estructura de Directorios en Unix

Hay veces que debemos cambiar los permisos de ciertos archivos que se repiten en un árbol de directorios y la gracia, no es hacerlos archivo a archivo, para ello recurrimos a una combinación de comandos de consola que nos permite hacerlos con un comando, de la forma siguiente:

Cambia Permisos a un tipo de Archivo dentro del Árbol

$ find . -name \*\.php -exec chmod 660 {} \;

Lo que este comando realiza, es buscar, desde donde estoy parado, hacia abajo y dentro de todo el árbol, los archivos que terminen con la extensión .php y le cambia los permisos a 660 (rw- rw- - - -).

Cambia los Permisos a todos los Archivos de un Árbol

Este comando cambia los permisos a todos los archivos del árbol, desde donde estoy parado hacia abajo.

$ find . -type f -exec chmod 660 {} \;

Cambia Permisos a los Directorios de un Árbol Completo

Este comando permite cambiar todos los directorios de un árbol a permisos 770, lo que los deja sólo ser modificados por el dueño y el grupo.

$ find . -type d -exec chmod 770 {} \;

Borrar un Mismo Archivo en Muchos (sub)Directorios

Cuando usamos distintos sistemas operativos y tenemos procesos automatizados de respaldos entre distrmas, en ocasiones se transfieren archivos de control entre sistemas, el caso típico es el archivo .DS_Store que usa OSX que lo usa en todos los directorios, pero cuando transferimos los backup a otros Unix, estos archivos se transforman en basura.

Este es el caso de los backup's o por otras razones, tenemos un archivo repetido en muchos directorios y subdirectorios y la opción de borrar uno por uno, no es algo que estemos dispuesto a realizar, sería una pérdida de tiempo y una tortura ir borrando archivo por archivo, para ello tenemos herramientas es nuestro sistema que nos hace muy simple el poder hacerlo.

En un terminal podemos ejecutar el comando que indico para saber donde se encuentra nuestro archivo muchas veces duplicado:

$ find . -name ".DS_Store" -type f

Estos nos lista todos los archivos con el nombre .DS_Store que están en el directorio donde nos encontramos y en todos los subdirectorios que depende de este.

Para borrar estos archivos desde un sólo comando, lo que haremos es utilizar esta misma línea de comandos que usamos para listarlos pero ahora para borrarlos.

$ find . -name ".DS_Store" -type f -delete

La opción -delete, nos permite borrar el archivo en forma recursiva para todo el árbol de directorios que se encuentran por debajo de donde nos encontramos y ejecutamos el comando.