Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como sed

Branching (condicional).

Solo es posible realizar este tipo de test cuando se realiza una substitución exitosa. [address]t[label] Si no se especifica una etiqueta, cuando se cumpla la condición será enviado al final del script . Escenario Queremos hacer el remplazo de un carácter en todas las líneas. Una vez que se realice, pasamos a la siguiente. La letra más utilizada en el alfabeto es la 'a'. Para efectos de demostración emplearemos el control de flujo (branch) en la substitución de ésta letra por XXX. Entrada Consult Section 3.1 in Owner and Operator Guide for a description of the tape drivers available on your system. blank Look in the Owner and Operator Guide shipped with your system. blank Two manuals are provided and including the Owner and Operator Guide and the User Guide. blank The Owner and Operator Guide is shipped with your system. Sed script :again    s/a/XXX/    t again Salida [lyonn@mictlan 6]$ sed -f branching.sed multiline.txt Consult Section 3.1...

Branching

En Sed es posible crear flujos de control a través de etiquetas. Dependiendo de las necesidades que cada sysadmin tenga, la complejidad irá de menor a mayor. Hay una clase similar de condicional, la cual explicaremos en el siguiente post. Forma general:     [address]b[label] Ejemplo     :top     command1     command2     /pattern/ b top      command3 Siendo un poco más pedagógicos. Vamos a pensar que estamos revisando un sencillo curriculum. al cual queremos hacerle algunas modificaciones. CV  Operating Systems      Linux      Solaris      FreeBSD      NetBSD      OpenBSD  Application Servers      JBoss 6      JBoss 7 El primer script de Sed solo hace una modificación y sale. #!/bin/sed -f...

Sed script

Durante mucho tiempo el uso que le di a Sed fue desde la misma línea de comando, invocando todo en una sola línea. Al principio esto fue fácil y poco común. Con el paso de los años, me he visto en la necesidad de elaborar, una y otra vez, las mismas sentencias con ligeros cambios. Hacerlo cada vez no era una opción. La mejor manera de preservar nuestras sentencias es con scripts , los cuales de sobra está decir, debemos ordenar periódicamente. En Sed solo basta: Crear un archivo de texto. Incluir un encabezado (opcional). Escribir las sentencias. No olvidar que es una buena práctica hacer algunos comentarios de los procedimientos que el script lleva a cabo. Vim tiene soporte de colores y sintaxis para éstos casos. #!/bin/sed -f / coso / {   s / coso / cosasss / }

Introducción a sed III

Transformación de caractéres (lower-case to upper-case). La siguiente sentencia de sed transforma cada carácter en la posición de la cadena abc en su equivalente ABC . echo " verde que te quiero verde. Verde viento, verdes ramas " | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJ KLMNOPQRSTUVWXYZ/' El resultado es el siguiente. VERDE QUE TE QUIERO VERDE. VERDE VIENTO, VERDES RAMAS Print Este comando en sed es usualmente empleado para la depuración o el cambio en el flujo de la ejecución de los scripts . Su función es mandar a la salida estándar (pantalla) el contenido del pattern space y por lo general se utiliza antes de los comandos N , d y b , cambiando así el ya mencionado flujo. Si se suprime la salida ( -n ), solo veremos los cambios realizados, en caso contrario (no acompañar la ejecución de sed con la supresión de la salida) se duplicarán las entradas presentadas en pantalla. Print.se...

Substituciones con Sed (Parte II)

Substitución A continuación vamos a escribir algunos ejemplos para darle forma a estas viñetas. Para esto, realizaremos el ejercicio sobre un contenido como el siguiente. Linux (pronounced Listeni/ˈlɪnəks/ LIN-əks[9][10] or, less frequently, /ˈlaɪnəks/ LYN-əks[10][11]) is a Unix-like computer operating system assembled under the model of free and open-source software development and distribution. The defining component of Linux is the Linux kernel,[12] an operating system kernel first released on September 17, 1991 by Linus Torvalds.[13][14][15] The Free Software Foundation uses the name GNU/Linux to describe the operating system, which has led to some controversy. There are many flavors of Linux, which difference is the purposes of each one. For example, Fedora is for general purposes meanwhile Backtrack is intended for penetration testing and auditing. example.txt Ejercicio 1 Sustituir la primer coincid...

Introducción a sed I

Otro más de mis favoritos en la consola de GNU/Linux: sed. Este Stream EDitor es similar a grep, salvo que puede hacer afectaciones a los archivos (no por defecto). No todas las expresiones regulares de grep funcionan transparentemente en sed, así que es buena idea acostumbrarse a cada uno. Conociendo la sintaxis y los modificadores no hay cosa que se le resista. No pretendo hacer una extensiva introducción a sed. Quiero que sea una receta rápida a las cosas que se pueden realizar con éste. Es importante que sepan que a diferencia de un bash script común y corriente, donde todas las instrucciones se ejecutan secuencialmente. Sed aplica todas las expresiones/instrucciones a la misma línea del archivo objetivo y hasta que no se apliquen la totalidad no continua con las subsecuentes líneas. Por supuesto, que las líneas que no empaten se mantendrán sin modificación alguna.  Los patrones/regex siempre van entre diagonales (/regex/). La manera simple en que pueden valid...

Introducción a grep

G/er/p Lo prometido es deuda. En el artículo anterior, hice la promesa que regresaría con más información para desempolvar los dedos. Esta vez hablaré un poco de cómo construir expresiones regulares (aka regex) para la extracción de información. Para lo siguiente, el consejo que le doy a los novatos es que consideren 4 cosas al momento de realizar la construcción de sus búsquedas y probarlas. Es importante asegurarse que los datos que están observando son realmente todos los que son y que éstos no se ven sesgados por datos de otra clase. Las premisas que en todos los casos deben ser ciertas son: Qué empata. Qué NO empata. Qué empata pero No debería empatar. Qué no empata, pero debería empatar. Insisto en la importancia de mantener la consistencia en los resultados. Si vamos a presentar un informe con fechas, números, promedios y picos; cualquier volumen de datos podría generar una desviación en la verosimilitud de toda la información, poniendo en riesgo las medidas ...

Formateando salida de SAR

SAR es la herramienta por excelencia para el monitoreo de los sistemas operativos GNU/Linux. Cuenta con históricos, además de una gran cantidad de métricas relacionadas al desempeño de nuestro servidor, como cpu, memoria, I/O y red. Cada uno de estos hitos puede ser diseccionado con mayor granularidad, es decir, observar la parte que compone cada recurso. Algunas veces es necesario realizar reportes de desempeño a otras áreas o incluso para efectos de conocimiento de patrones de utilización de cada servidor. Por desgracia, las formas de llevar a un modelo de visualización más amable es tarea un poco más complicada y no está incorporada por defecto con SAR. Existen herramientas ex profeso, sin embargo, tienen que ser utilizadas con cierta complejidad y algunas veces no producen el resultado deseado, como por ejemplo, gráficas de muy pobre visualización. En lo personal me gusta graficar las métricas; son una manera muy simple de entender lo que sucede y enfocarnos en los momento...

Cómo parametriza un .jmx demasiado largo

El tamaño de los flujos de prueba no siempre es breve, lo que dificulta su correcta transformación en scripts de JMeter. No solo por el hecho de ser extensos, sino también por las necesidades que acarrea al momento de parametrizar. Como he mencionado en algunas entradas anteriores , algunas veces es necesario parametrizar casi por completo el script de JMeter. Es el caso si la aplicación tiene componentes de Seam. El ocio, como bien dice Jason Cannon, es la madre de la automatización y el uso de rutinas para las tareas repetitivas. A continuación vamos a hacer vía bash con la cual podemos sustituir los parámetros cid y viewstate en los .jmx de JMeter, hecho que nos facilitará la vida de manera sustanciosa, inclusive, evitando posibles errores de dedo que no hacen otra cosa que fastidiarnos las pocas horas que debemos dedicar a labores de preparación de los scripts . GNU/Linux está dotado de herramientas muy poderosas para el manejo de archivos de texto, como Perl, AWK, ...