BASH – Script RETURN no númerico en funciones bash.-

Por defecto en bash sólo se pueden retornar enteros. ¿Qué hay que hacer entonces para que retorne un valor no entero? El truco está en hacer un echo del valor y asegurarnos en la llamada de la función que se asigna a una variable. Es decir, nuestra función sería:

Publicado en Unix - Linux | Deja un comentario

UNIX – Script AWK para contar palabras de un texto.-

Este programa imprime la lista de todas las palabras diferentes usadas en un texto, junto con la frecuencia de aparición de cada una. Para simplificar el programa se asume que no hay signos de puntuación, y las palabras están separadas por espacio en blanco o saltos de línea. Esto significa que cada palabra es un campo de la línea de entrada.

Código del programa (vocabulario.awk):

Ejemplo de texto de entrada (texto.txt):

Orden de ejecución :

Resultados:

Observaciones:

1.- La primera cláusula del programa tiene el patrón omitido. Se aplica a todas las líneas del texto de entrada.
2.- Las palabras en mayúsculas y en minúsculas se tratan como diferentes. Este es el comportamiento por defecto de AWK.
3.- Los resultados no aparecen en orden alfabético (ni en ningún otro orden determinado). Las tablas suelen implementarse internamente como tablas «hash», y sus elementos se recorren en el orden que haya decidido quien construyó el intérprete.

Publicado en Unix - Linux | Deja un comentario

UNIX – Uso basico de SED.-

SED (Stream EDitor) es un editor de flujos y ficheros de forma no interactiva. Permite modificar el contenido de las diferentes líneas de un fichero en base a una serie de comandos o un fichero de comandos (-f fichero_comandos).

Sed recibe por stdin (o vía fichero) una serie de líneas para manipular, y aplica a cada una de ellas los comandos que le especifiquemos a todas ellas, a un rango de las mismas, o a las que cumplan alguna condición.

Por ejemplo:

Formato de uso
El formato básico de uso de sed es:

Donde:

[direccion] es opcional, siendo un número de línea (N), rango de números de línea (N,M) o búsqueda de regexp (/cadena/) indicando el ámbito de actuación de las instrucciones. Si no se especifica [direccion], se actúa sobre todas las líneas del flujo.

Instruccion puede ser:
i = Insertar línea antes de la línea actual.
a = Insertar línea después de la línea actual.
c = Cambiar línea actual.
d = Borrar línea actual.
p = Imprimir línea actual en stdout.
s = Sustituir cadena en línea actual.
r fichero = Añadir contenido de «fichero» a la línea actual.
w fichero = Escribir salida a un fichero.
! = Aplicar instrucción a las líneas no seleccionadas por la condición.
q = Finalizar procesamiento del fichero.

-n: No mostrar por stdout las líneas que están siendo procesadas.

-s: Tratar todos los ficheros entrantes como flujos separados.

EJEMPLOS DE SUSTITUCION :

EJEMPLOS DE INSERCION :

EJEMPLOS DE SELECCION/VISUALIZACION :

EJEMPLOS DE BORRADO :

USO DE SALIDA SELECTIVA :

Referencias

http://www.linuxhowtos.org/System/sedoneliner.htm?ref=news.rdf

Publicado en Unix - Linux | Deja un comentario

BASH – Script para invertir cadenas de texto.

El siguiente SCRIPT permite invertir un texto ingresado como parametro :

Pra ejecutarlo :

Con lo cual se obtiene el siguiente resultado :

Publicado en Unix - Linux | Deja un comentario

BASH – Script cambio masivo de texto en multiples archivos.-

El siguiente codigo permite cambiar texto en archivos. Cambia todas las ocurrencias encontradas (para este caso cambia $text1 por $text2).-

Otra opción si es que no se tiene instalado el comando «perl» se puede realizar con el comando «sed» de la siguiente forma (Cambiando la linea del comando «perl» por la del comando «sed») :

Publicado en Unix - Linux | 1 comentario