La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Modulo 2. Herramientas de Procesos de String

Presentaciones similares


Presentación del tema: "Modulo 2. Herramientas de Procesos de String"— Transcripción de la presentación:

1 Modulo 2. Herramientas de Procesos de String
Linux Modulo 2. Herramientas de Procesos de String Relator :JCNET

2 Unidad 8 – Herramientas de Procesos de String
Conteo de palabras y codificación de texto Búsqueda de Texto: grep Introducción a las expresiones regulares Ordenando todo: sort y uniq Extraer y reunir texto: cut y paste Rastreo de diferencias: diff Traducción de texto: tr Revisión ortográfica: aspell Formatear texto (fmt) y dividir archivos (split)

3 Conteo de palabras y codificación de texto
Conceptos Claves Cuando se almacena texto, los equipos transforman los caracteres en una representación numérica. Este proceso se conoce como codificación del texto. A fin de cubrir las demandas de una variedad de idiomas, se han desarrollado diversas técnicas de codificación. Estas técnicas están representados por una variedad de conjuntos de caracteres. La técnica de codificación más prevalente y antigua se conoce como el conjunto de caracteres ASCII, el cual sirve aún como el denominador menos común entre otras técnicas. El comando wc cuenta el número de caracteres, palabras y líneas en un archivo. Cuando se aplica a datos estructurados, el comando wc puede convertirse en una herramienta versátil de conteo. El comando cat tiene opciones que permiten la representación de caracteres de no impresión tal como el caracter NEWLINE. Los comandos head y tail tienen opciones que le permiten imprimir sólo un cierto número de líneas o un cierto número de bytes de un archivo, (un byte suele correlacionarse con un caracter). station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

4 Codificación Codificación de Datos
Convertir la información en valores numéricos es llamada codificación de los datos. Codificación de Texto Codificación ASCII simplemente toma las letras, números y comunes caracteres de puntuacion Inglés (los que se encuentran en un teclado), y los asigna a un número entero entre 0 y 255. Unicode (UCS) Supera las limitaciones de ASCII e ISO 8859 basado en tecnicas de codificación. Unicode Transformation Format (UTF-8) Balance entre la flexibilidad de Unicode, y la viabilidad de ASCII, con: longitud variable de codificación.

5 Variable de Ambiente LANG
La variable de entorno LANG se utiliza para definir el idioma de un usuario, y la técnica de codificación por defecto. La variable se espera que se establece en una cadena usando la siguiente sintaxis: LL_CC.enc La variable está compuesta de los siguientes tres componentes:

6 Resumen de Codificación
Un archivo ASCII ya es válido en uno de los conjuntos de caracteres ISO 8559. Un archivo ASCII ya es válido en UTF-8. Un archivo codificado en uno de los conjuntos de caracteres ISO 8559 no es válida en UTF-8, y deben ser convertidas. Usando UTF-8, existe una correspondencia una a una entre los caracteres y bytes si y sólo si todos los caracteres son puros caracteres ASCII.

7 Visualización de secuencias de control
Los archivos de texto de Linux (y Unix) por lo general se adhieren a la convención de que el último caracter del archivo debe ser un avance de línea para la última línea de texto. El comando cat indica la presencia de la presencia de tabulaciones, avances de línea y otras secuencias de control student]$ cat -A /etc/hosts # Do not remove the following line, or various programs$ # that require network functionality will fail.$ ^Ilocalhost.localdomain^Ilocalhost station.example.com $ ^Irha-server$ student]$ head –n2 /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. student]$

8 Comando Word Count (wc)
El comando wc cuenta el numero de caracteres, palabras y lineas. Tomará su entrada ya sea de archivos llamados en su línea de comandos o desde su entrada estándar. wc [-c] [-l] [-w] [filename…]

9 Búsqueda de Texto: grep
Conceptos Claves grep es un comando que imprime en pantalla líneas coincidentes con un patrón de una cadena de texto especificado. grep suele utilizarse como filtro para reducir salida a sólo lo deseado. grep -r buscará de modo recursivo bajo un directorio determinado. grep -v imprime líneas NO coincidentes con una cadena o patrón de texto. Muchas de las opciones permiten a los usuarios especificar el formato de salida de grep. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

10 Búsqueda de contenido de archivo de texto
grep: general regular expression parser Herrramienta útil para la búsqueda de palabras específicas o secuencias de caracteres en el contenido de archivo de texto. Hay en realidad tres nombres diferentes para la herramienta grep fgrep Hace una búsqueda rápida de patrones simples. Utilice este comando para localizar rápidamente patrones sin caracteres comodines, útil para buscar una palabra común. grep Búsqueda de patrones con expresiones regulares comunes. egrep Búsqueda de patrones con expresiones regulares extendidas de gran alcance.

11 grep

12 Muestra todas las ocurrencias de una cadena de texto en un archivo
[student]$ cat file This file has some words. It also has even more words. [student]$ grep even file [student]$ [student]$ echo Every cat has one tail. > general [student]$ echo No cat has nine tails. > specific [student]$ echo Therefore, every cat has ten tails. > fallacy [student]$ grep cat general specific fallacy general:Every cat has one tail. specific:No cat has nine tails. fallacy:Therefore, every cat has ten tails.

13 Obtención de números de línea
[student]$ fgrep -n dictionary /usr/share/dict/words 12526:dictionary [student]$ fgrep -nr dictionary /usr/share/dict linux.words:12526:dictionary words:12526:dictionary

14 Ignorar mayúsculas o minúsculas
[student]$ cat rhyme The cat sat on the mat at home. [student]$ grep the rhyme [student]$ grep -in the rhyme 1:The cat 3:the mat

15 Introducción a las expresiones regulares
Conceptos clave Las expresiones regulares son una sintaxis estandar de Unix para especificar los patrones de texto. Las expresiones regulares son entendidas por muchos comandos incluyendo grep, sed, vi y varios lenguajes de escritura. Dentro de las expresiones regulares, . y [] se utilizan para coincidir caracteres. Dentro de las expresiones regulares, +, * y ? especifican un numero de ocurrencias consecutivas. Dentro de las expresiones regulares ^ y $ especifican el comienzo y el final de una linea. Dentro de las expresiones regulares, ( , ) y | especifican grupos alternativos. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

16 Expresiones Regulares en Linux
En Linux (y Unix), existe sintaxis específica que son comúnmente utilizadas por muchas aplicaciones para la especificación de patrones de texto Las expresiones regulares son una técnica poderosa para describir los patrones de texto Linux programs use them to describe sequences of characters to be matched Los programas de Linux utilizan las expresiones regulares para describir las secuencias de caracteres que coinciden con la búsqueda

17 Expresiones Regulares (cont.)
Una expresión regular es una secuencia de: Caracteres literales Comodines Modificadores Anclas Comodines Los caracteres comodines coinciden con cualquier caracter. Dentro de una expresión, un punto (“.”) coincide con cualquier caracter, ya sea un espacio, una letra, un dígito, puntuación, cualquier cosa. Caracteres literales Los caracteres literales coinciden únicamente con ellos mismos. Las letras, dígitos y la mayoría de los caracteres son ejemplos de caracteres literales (vea a continuación las excepciones). Modificadores Un modificador altera el significado del caracter patrón precedente inmediato. Por ejemplo, la expresión “ab*c” coincide con cadenas de texto “ac”, “abc”, “abbc”, “abbbc” y así sucesivamente porque el asterisco (“*”) es un modificador que significa “cualquier número de (incluyendo cero)”. Anclas Las anclas establecen el contexto para el patrón tal como "el comienzo de una línea" o "el final de una palabra". Por ejemplo, la expresión “cat” coincidiría con cualquier ocurrencia de las tres letras mientras que “^cat” sólo coincidirían con las líneas que comienzan por “cat”. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

18 Resumen de la sintaxis de expresiones regulares de Linux

19 Comparación y contraste de expresiones regulares y comodines de archivo

20 Ordenando todo: sort y uniq
Conceptos clave El comando sort clasifica datos en orden alfabético. sort -n ordena numéricamente. sort -u clasifica y suprime duplicados. sort -k y -t clasifica en un campo específico en datos en patrones. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

21 El comando sort En su forma más simple, el comando sort clasificará en orden alfabético líneas madonna]$ cat /etc/sysconfig/mouse FULLNAME="Generic - 2 Button Mouse (PS/2)" MOUSETYPE="ps/2" XEMU3="yes" XMOUSETYPE="PS/2" DEVICE=/dev/psaux madonna]$ sort /etc/sysconfig/mouse

22 Opciones para especificar el orden de clasificación

23 Sort Order [madonna@station madonna]$ ls -s /var/log/m* | sort
1236 /var/log/maillog.4 20 /var/log/maillog 216 /var/log/messages.3 3104 /var/log/maillog.1 4 /var/log/messages madonna]$ ls -s /var/log/m* | sort -n 4 /var/log/messages 20 /var/log/maillog 216 /var/log/messages.3 1236 /var/log/maillog.4 3104 /var/log/maillog.1

24 Opciones para especificar teclas de clasificación
Sort Keys Opciones para especificar teclas de clasificación madonna]$ head /etc/passwd | sort -t: -k6 bin:x:1:1:bin:/bin:/sbin/nologin news:x:9:13:news:/etc/news: root:x:0:0:root:/root:/bin/bash sync:x:5:0:sync:/sbin:/bin/sync halt:x:7:0:halt:/sbin:/sbin/halt daemon:x:2:2:daemon:/sbin:/sbin/nologin shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin En resumen, hemos visto que el comando sort puede utilizarse para clasificar datos estructurados, mediante la opción -k para especificar el campo de clasificación(quizás más de una vez) y la opción -t para especificar el delimitador del campo. madonna]$ ls -l /var/log/m* | sort -n -k5 -rw root root Oct :40 /var/log/messages -rw root root Oct :05 /var/log/maillog -rw root root Sep 22 10:22 /var/log/messages.3 -rw root root Oct :07 /var/log/messages.1 -rw root root Sep 14 04:08 /var/log/messages.4

25 El comando uniq El programa uniq se utiliza para identificar, contar o suprimir registros duplicados en la información clasificada.

26 Conteo de instancias de datos
Los switches de parametros -d y -u permiten que el comando uniq identifique un dato unico o repetido (-c permite contar ocurrencias) madonna]$ sort -n trial0 | uniq -u 4 16 madonna]$ sort -n trial1 | uniq -d 5 6 7 8 9 10 madonna]$ sort -n trial1 | uniq -c 1 4 4 5 6 6 10 7 10 8 13 9 13 10 9 11 13 12 4 13 8 14 4 15 1 16 2 17 2 18 madonna]$ head trial1 10 13 8 6

27 Extraer y reunir texto: cut y paste
Conceptos clave El comando cut extrae textos de archivos de texto, basados en columnas especificadas por bytes, caracteres o campos. El comando paste fusiona dos archivos de texto por línea. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

28 Extracción del texto con cut
El comando cut extrae columnas de texto desde un archivo de texto Opciones para el comando cut. Especificaciones de intervalo

29 Extracción de texto por posición de caracter con cut -c
[student]$ cat /proc/interrupts CPU0 0: XT-PIC timer 1: XT-PIC keyboard 2: XT-PIC cascade 3: XT-PIC ehci-hcd [student]$ grep '[[:digit:]]:' /proc/interrupts | cut -c1-15 0: 1: 2: 0 3: 7344 [student]$ grep '[[:digit:]]:' /proc/interrupts | cut -c1-5,34- 0: timer 1: keyboard 2: cascade 3: ehci-hcd

30 Extracción de campos de texto con cut -f
El comando cut también sirve para extraer texto que no está estructurado por la posición de caracteres, sino por un caracter delimitador tal como un TABULADOR o “:”. hwdata]$ cut -s -f3,4 pcitable | head "unknown" "Dynalink|IS64PH ISDN Adapter" "hisax" "Dynalink|IS64PH ISDN Adapter" "unknown" "Arris|CM 200E Cable Modem" hwdata]$ head -15 pcitable # This file is automatically generated from isys/pci. 0x x1700 "unknown" "Dynalink|IS64PH ISDN Adapter" 0x x1702 "hisax" "Dynalink|IS64PH ISDN Adapter" 0x09c1 0x0704 "unknown" "Arris|CM 200E Cable Modem“

31 Comando paste El comando paste sirve para combinar archivos múltiples en una sola salida. student]$ cat file-1 File-1 Line 1 File-1 Line 2 File-1 Line 3 student]$ cat file-2 File-2 Line 1 File-2 Line 2 File-2 Line 3 student]$ paste file-1 file-2 File-1 Line 1 File-2 Line 1 File-1 Line 2 File-2 Line 2 File-1 Line 3 File-2 Line 3

32 Rastreo de diferencias: diff
Conceptos clave El comando diff resume las diferencias entre dos archivos. El comando diff es compatible con una gran variedad de formatos de salida que pueden escogerse mediante varias opciones. Al comando diff se le puede pedir que ignore ciertos tipos de diferencias tales como el uso de espacios en blanco o de mayúsculas. El comando diff -r resume de modo recursivo las diferencias entre los dos directorios. Al comparar directorios, se le puede pedir al comando diff que ignore los archivos cuyos nombres de archivo coincidan con patrones especificados. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

33 Comando diff El comando diff está diseñado para comparar dos archivos similares, pero no idénticos y que generen salida que describa exactamente la diferencia. [blondie]$ diff README.pam_ftp.orig README.pam_ftp 11,12c11,12 < could login only with adress < "ignore" allow invalid adresses --- > could login only with address > "ignore" allow invalid addresses 18a19 > Spelling corrections applied by blondie, 22 Sep 2003

34 Opciones para especificar el formato de salida diff

35 Traducción de texto: tr
Conceptos clave El comando tr traduce lectura de datos desde la entrada estándar. En su forma más básica, el comando tr realiza sustituciones byte por byte. Al utilizar la opción -d, el comando tr borrará caracteres especificados desde un flujo. Al utilizar la opción -s se comprimirá una serie de caracteres repetidos en un flujo a una sola instancia del caracter. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

36 Comando tr El comando tr es una utilidad muy versátil que realiza traducciones de caracter en flujos. Traducir puede suponer sustituir un caracter por otro, borrar caracteres o "comprimirlos" (contrayendo secuencias repetidas de un caracter en uno). El comando tr no espera nombres de archivo como argumentos. el comando tr opera exclusivamente en el flujo de entrada estándar, reservando los argumentos de línea de comandos para especificar conversiones.

37 Uso de tr para traducir caracteres
tr command expects to be called with two arguments, each of which specify a range of characters madonna]$ echo "abcdefghi" | tr fed xyz abczyxghi madonna]$ cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost rha-server madonna]$ tr a-z A-Z < /etc/hosts # DO NOT REMOVE THE FOLLOWING LINE, OR VARIOUS PROGRAMS # THAT REQUIRE NETWORK FUNCTIONALITY WILL FAIL. LOCALHOST.LOCALDOMAIN LOCALHOST RHA-SERVER

38 Revisión ortográfica: aspell
Conceptos clave El comando aspell -c realiza revisiones ortográficas interactivas en los archivos. El comando aspell -l realiza una revisión ortográfica en el flujo de entrada estándar. El comando aspell dump puede utilizarse para ver el maestro del sistema o el directorio personal de un usuario. Los comandos aspell create personal y aspell merge personal pueden utilizarse para crear o añadirse al directorio personal del usuario de una lista de palabras. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

39 Using aspell aspell es el utilitario primario para revisar la ortografía de los archivos de texto. prince] aspell -c toelvis Hey Elvis! I heard you were about to take the lab test for the string procesing workbook in Red Hat Academy. IIRC, its prety straightforward, if you've been keeping up with the exercises. LOL, Prince ========================================= 1) processing ) preceding 2) precessing ) professing 3) precising ) promising 4) proceeding ) proposing 5) prosing i) Ignore I) Ignore all r) Replace R) Replace all a) Add x) Exit ?

40 Formatear texto (fmt) y dividir archivos (split)
Conceptos clave El comando fmt puede reformatear texto a diferentes anchuras. Al usar la opción -p, el comando fmt sólo reformateará texto comenzado por el prefijo especificado, preservando el prefijo. El comando split puede utilizarse para dividir un archivo sencillo en múltiples archivos basados en un número de líneas o en un número de bytes. station]# ls /boot boot.b lost+found System.map chain.b message System.map EL config EL message.ja vmlinux EL grub module-info vmlinuz initrd EL.img module-info EL vmlinuz EL kernel.h os2_d.b

41 Comando fmt Al igual que la mayoría de los comandos de procesador de texto encontrados en este cuaderno, el comando fmt interpreta argumentos como nombres de archivos en los cuales operar, u operar en entrada estándar si ninguno es provisto. Su salida se escribe a la salida estándar. elvis]$ fmt -w60 side_effect.gvim One side effect of the variety of text editors in Linux, and in particular the coexistence of text editors and word processors, is the inconsistencies with which word wrapping is handled. elvis]$ fmt -40 side_effect.gvim One side effect of the variety of text editors in Linux, and in particular the coexistence of text editors and word processors, is the inconsistencies with which word wrapping is handled.

42 Comando split Es usado cuando se desea dividir un archivo en archivos más pequeños, cada uno con un número especificado de líneas o bytes. elvis]$ split -200 pointless.txt sub_pointless_ elvis]$ wc sub_pointless_a* sub_pointless_aa sub_pointless_ab sub_pointless_ac sub_pointless_ad sub_pointless_ae sub_pointless_af total

43


Descargar ppt "Modulo 2. Herramientas de Procesos de String"

Presentaciones similares


Anuncios Google