550 likes | 659 Views
Unidad 5: Standard IO and Pipe. Capítulo 1: Entrada estándar y salida estándar. Tres tipos de programas. Programas gráficos: diseñados para ejecutarse en el entorno gráfico X. Utilizan mouse y teclado
E N D
Unidad 5: Standard IO and Pipe Capítulo 1: Entrada estándar y salida estándar
Tres tipos de programas • Programas gráficos: diseñados para ejecutarse en el entorno gráfico X. Utilizan mouse y teclado • Programas de pantalla: utilizar una consola de texto. No necesitan ratón y son apropiados para terminales y consolas virtuales. • Programas de terminal: suelen llamarse simplemente comandos.
Entrada estándar (stdin) y salida estándar (stdout) • El flujo de entrada se conoce como entrada estándar (suele abreviarse stdin) y el flujo de salida se conoce como salida estándar (o en forma abreviada stdout). • Por lo general, stdin y stdout están conectadas a la terminal que ejecuta el comando.
Redirección de stdin y stdout • La shell bash usa > para redirigir un flujo de stdout de proceso a un archivo. • Para agregar una salida de un comando a un archivo, en lugar de sobrescribirlo, bash usa >>. • bash usa < para hacer que lean entradas desde alguna parte diferente al teclado
Archivos abiertos y descriptores de archivos • Al abrir un archivo linux mantiene un registro y les asigna un número llamado descriptor de archivos • Cada proceso tiene un subdirectorio asociado bajo /proc llamado como su PID • El subdirectorio del proceso a su vez tiene un subdirectorio llamado fd que contiene existe un enlace simbólico para cada archivo abierto por el proceso
Capítulo 2 Error estándar
Error estándar (stderr) • Así como bash usa > para redirigir lastdout, bash usa 2> para redirigir elstderr. • head -1 /etc/rc.d/* 2> rcsummary.err • Tanto > como 2> se utilizan para redirigir stdout y stderr de modo independiente. • head -1 /etc/rc.d/* > rcsummary.out 2> rcsummary.err
Combinación de stdout y stderr • Si queremos enviar ambas salidas se podría pensar los siguiente • head -1 /etc/rc.d/* > rcsummary.both 2> rcsummary.both • Modo Antiguo • head -1 /etc/rc.d/* > rcsummary.both 2>&1 • Modo Nuevo • head -1 /etc/rc.d/* >& rcsummary.both
Capítulo 3 Tuberías
Tuberías • Cadena de procesos conectados de forma tal que la salida de cada elemento de la cadena es la entrada del próximo. • Cuando dos comandos se unen por medio de una tubería, el flujo de stdout del primer proceso es ligado directamente a la secuencia stdin del segundo proceso para que múltiples procesos puedan combinarse en una secuencia. • Los comandos se unen con una barra vertical • A todos los procesos unidos en una tubería se les llama un grupo de proceso
Unidad 6: String Processing Tools Capítulo 1: Conteo de palabras y codificación de texto
Codificación de caracteres • La codificación de caracteres es el método que permite convertir un carácter de un lenguaje natural (alfabeto o silabario) en un símbolo de otro sistema de representación, como un número o una secuencia de pulsos eléctricos en un sistema electrónico, aplicando normas o reglas de codificación.
ASCII • Técnica para codificar texto • Toma los signos del alfabeto español e Ingles, junto con algunos símbolos y le asigna una correspondencia numérica entre 0 y 255
head • Escribe por salida estándar la primera parte de un archivo. Su sintaxis es como sigue: • head [opción...] [archivo...]
tail • El comando tail escribe a la salida estándar la última parte de un archivo. Su sintaxis es: • tail [opción...] [archivo...]
El comando wc (Conteo de palabras) • El comando wc cuenta el número de caracteres, palabras y líneas. Tomará su entrada ya sea de archivos llamados en su línea de comandos o desde su entrada estándar. • wc [opción...] [Filename...]
El comando wc • Recuerde que parte de la codificación de caracteres también incluye la codificación de caracteres “No Imprimibles”
Unidad 6: String Processing Tools Capítulo 2: Búsqueda de Texto: grep
Búsqueda Con Grep • El nombre grep representa en inglés general regular expression parser.
Búsqueda Con 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.
Xarg • Existen ocasiones en las que las tuberías no funcionan, ya que el resultado del comando no puede ser utilizado en el comando siguiente
Unidad 6: String Processing Tools Capítulo 3: Introducción a las expresiones regulares
Expresiones Regulares • A menudo se le llama patrón, es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. • Por ejemplo, el grupo formado por las cadenas Handel, Händel y Haendel se describe mediante el patrón "H[aäae]ndel".
¿Qué compone una expresión regular? • Caracteres literales: coinciden únicamente con ellos mismos. Las letras, dígitos y la mayoría de los caracteres son ejemplos de caracteres literales. Se diferencia las mayúsculas y minusculas. • 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.
¿Qué compone una expresión regular? • 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” • 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”.
Comodines • comodín "punto“:El caracter “.” se utiliza como un marcador para coincidir con algún carácter . • intervalo de caracteres literales: Una expresión de paréntesis es un intervalo de literales encerrados entre paréntesis cuadrados (“[” y “]”). Si el primer caracter de una expresión entre paréntesis es “^”, la interpretación se invierte y la expresión entre paréntesis coincidirá con cualquier ocurrencia de un caracterno incluido en el intervalo.
Comodines • intervalo de caracteres literales
Caracteres modificadores comunes • b?: El signo de interrogación final (“?”) significa “uno o ninguno”: el caracter literal se considera como opcional en el texto examinado. • b*:El modificador asterisco (“*”) significa “cualquier número (incluyendo cero)” del caracter literal precedente. • b+:El modificador más (“+”) significa “uno o más”, por lo tanto el patrón regex “b+” coincide con una secuencia de no-espacio vacío de b.
Caracteres modificadores comunes • b{m,n}:El modificador de paréntesis se utiliza para especificar un intervalo entre las ocurrencias m y n del caracter precedente. • b{n}:Con sólo un número entero, el modificador de paréntesis se utiliza para especificar exactamente n ocurrencias para el caracter precedente.
Búsquedas de anclaje • ^foo:Un acento circunflejo (“^”) coincide con el comienzo de una línea. • foo$:Un signo de dólar (“$”) coincide con el final de una línea. • \<foo\>:Solos, los signos menor que (“<”) y mayor que (“>”) son literales. Al usar el caracter de barra invertida para escaparlos significan “primero de una palabra ”y “fin de una palabra”, respectivamente.
Agrupadores • (): Permite aplicar un operador a un subpatron. Por ejemplo: “foo(bar)?” permite al modificador “?” aplicar toda la cadena de texto “bar” • (|) : La barra invertida permite colocar subpatrones como opcionales
Escape de Metacaracteres • Para inhabilitar temporalmente el significado especial de estos caracteres, simplemente escápelos mediante el caracter de barra inversa (“\”). • Observe una molesta excepción a esta regla. Cuando el caracter de barra inversa precede a “<” o al caracter “>”, éste habilita la interpretación especial
Unidad 6: String Processing Tools Capítulo 4: Ordenando todo: sort
Comando sort • La clasificación es el proceso de arreglar los registros en una secuencia específica. • Si se llama con argumentos, los argumentos se interpretan (en lo posible) como nombres de archivos para ser clasificados. Si se llama sin argumento, el comando sort clasificará lo que lea de la entrada estándar
Comando sort Modificación del orden de clasificación
Comando sort (teclas de clasificación) • El comando sort por defecto realiza su clasificación con base en los primeros caracteres buscados en una línea • El comando sort permite a los usuarios especificar qué columna de datos tabulares utilizar para determinar el tipo de orden o de un modo más formal, qué columna debería utilizarse como la tecla de clasificación
Comando sort (teclas de clasificación) • Especificación del separador de campo
Unidad 6: String Processing Tools Capítulo 5: Extraer y reunir texto: cut y paste