unidad 5: standard io and pipe
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/1.jpg)
Unidad 5: Standard IO and Pipe
Capítulo 1: Entrada estándar y salida estándar
![Page 2: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/2.jpg)
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.
Tres tipos de programas
![Page 3: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/3.jpg)
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.
Entrada estándar (stdin) y salida estándar (stdout)
![Page 4: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/4.jpg)
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
Redirección de stdin y stdout
![Page 5: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/5.jpg)
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
Archivos abiertos y descriptores de archivos
![Page 6: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/6.jpg)
Archivos abiertos y descriptores de archivos
![Page 7: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/7.jpg)
Archivos abiertos y descriptores de archivos
![Page 8: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/8.jpg)
Capítulo 2Error estándar
![Page 9: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/9.jpg)
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
Error estándar (stderr)
![Page 10: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/10.jpg)
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
Combinación de stdout y stderr
![Page 11: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/11.jpg)
Resumen stdin,stdout, stderr
![Page 12: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/12.jpg)
Capítulo 3Tuberías
![Page 13: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/13.jpg)
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
Tuberías
![Page 14: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/14.jpg)
Tuberías
![Page 15: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/15.jpg)
Filtro de salida con grep
![Page 16: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/16.jpg)
Unidad 6: String Processing Tools
Capítulo 1: Conteo de palabras y codificación de texto
![Page 17: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/17.jpg)
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.
Codificación de caracteres
![Page 18: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/18.jpg)
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
ASCII
![Page 19: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/19.jpg)
Escribe por salida estándar la primera parte de un archivo. Su sintaxis es como sigue: ◦ head [opción...] [archivo...]
head
![Page 20: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/20.jpg)
El comando tail escribe a la salida estándar la última parte de un archivo. Su sintaxis es:◦ tail [opción...] [archivo...]
tail
![Page 21: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/21.jpg)
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 (Conteo de palabras)
![Page 22: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/22.jpg)
Recuerde que parte de la codificación de caracteres también incluye la codificación de caracteres “No Imprimibles”
El comando wc
![Page 23: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/23.jpg)
Unidad 6: String Processing Tools
Capítulo 2: Búsqueda de Texto: grep
![Page 24: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/24.jpg)
El nombre grep representa en inglés general regular expression parser.
Búsqueda Con Grep
![Page 25: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/25.jpg)
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.
Búsqueda Con Grep
![Page 26: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/26.jpg)
Búsqueda Con Grep
![Page 27: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/27.jpg)
Existen ocasiones en las que las tuberías no funcionan, ya que el resultado del comando no puede ser utilizado en el comando siguiente
Xarg
![Page 28: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/28.jpg)
Unidad 6: String Processing Tools
Capítulo 3: Introducción a las expresiones regulares
![Page 29: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/29.jpg)
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".
![Page 30: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/30.jpg)
¿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.
![Page 31: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/31.jpg)
¿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”.
![Page 32: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/32.jpg)
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 caracter no incluido en el intervalo.
![Page 33: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/33.jpg)
Comodines
intervalo de caracteres literales
![Page 34: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/34.jpg)
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.
![Page 35: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/35.jpg)
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.
![Page 36: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/36.jpg)
Caracteres modificadores comunes
![Page 37: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/37.jpg)
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.
![Page 38: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/38.jpg)
Búsquedas de anclaje
![Page 39: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/39.jpg)
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
![Page 40: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/40.jpg)
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
![Page 41: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/41.jpg)
Resumen
![Page 42: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/42.jpg)
Resumen
![Page 43: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/43.jpg)
Las Expresiones regulares no son nombres de archivos
![Page 44: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/44.jpg)
Unidad 6: String Processing Tools
Capítulo 4: Ordenando todo: sort
![Page 45: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/45.jpg)
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
![Page 46: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/46.jpg)
Modificación del orden de clasificación
Comando sort
![Page 47: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/47.jpg)
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)
![Page 48: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/48.jpg)
Comando sort (teclas de clasificación)
![Page 49: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/49.jpg)
Especificación del separador de campo
Comando sort (teclas de clasificación)
![Page 50: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/50.jpg)
Unidad 6: String Processing Tools
Capítulo 5: Extraer y reunir texto: cut y paste
![Page 51: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/51.jpg)
El comando cut extrae columnas de texto desde un archivo de texto o flujo.
Interpreta cualquier argumento de línea de comandos como nombres de archivo en los cuales operan
Para especificar cuáles bytes, caracteres, o campos se cortan, el comando cut debe llamarse con una de las siguientes opciones.
comando cut
Los argumentos de listado son en realidad una lista separada por comas deintervalos.
![Page 52: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/52.jpg)
• Cada intervalo puede tomar una de las siguientes formas.
comando cut
![Page 53: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/53.jpg)
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 “:”.
comando cut (-f)
![Page 54: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/54.jpg)
sirve para combinar archivos múltiples en una sola salida.
El comando paste espera un conjunto de nombres de archivo como argumentos.
Leerá la primera línea de cada archivo, unirá el contenido de cada línea
Insertando un caracter TABULADOR en el medio y escribirá la línea sencilla resultante en la salida estándar
Comando paste
![Page 55: Unidad 5: Standard IO and Pipe](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813723550346895d9eb017/html5/thumbnails/55.jpg)
Comando paste