martes, 27 de marzo de 2012

Phyton V2.7

Se trata de comparar diferentes formas de hacer lo mismo.

1. Hacer un programa en lenguaje C, que lea un archivo de entrada y busque un string y si lo encuentra, lo guardara en una variable con valor 1.

/ * Programa que encuenta una secuencia de letras de en un archivo que abre *
">*=================================================*

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
int cont=0;

char renglon [50];
FILE *ifp;
if (argc != 2) {"\n%s%s%s\n\n", "Debes teclear: ", argv[0], " ArchivoEntrada");"r");while ((fgets (renglon , 50 , ifp)) != NULL){
if(strstr(renglon,"NORMAL COMPLETION") != NULL)
cont++;
}
printf (
"\n\n%d\n\n", cont);

return cont;
} 
Se compila el programa y no tiene errores, entonces se hace un archivo ejecutable para que lo repita n veces (10 en mi caso)
archivo EnPal.sh





#!/bin/bash
echo "Buscara una cadena de caracteres en 10 archivos."
for j in 20; do 
for i in 2; do
for k in 1 2 3 4 5; do
# echo "wee_"$j"_"$i"_"$k
./ex "wee_"$j"_"$i"_"$k".lst" >> "ResEncPal.txt"
done
done
#awk '{if ($1 == 1)} {print "El archivo wee_"$j"_"$i"_"$k".lst fue exitosos"}' "ResEncPal.txt"
done 
#awk '{if ($1 == 1)} {print "El archivo wee_"$j"_"$i"_"$k".lst fue exitosos"}' "ResEncPal.txt"
for j in 40; do 
for i in 4; do
for k in 1 2 3 4 5; do
# echo "wee_"$j"_"$i"_"$k
./ex "wee_"$j"_"$i"_"$k".lst" >> "ResEncPal.txt"
done
done
done 
echo "F I N" 

El archivo ResEsnPal.txt, solo contiene 0 y 1's, 1: si el archivo que lee contiene la palabra NORMAL y 0 en otro caso.

2. Con Python.

Primero concatenamos los 10 archivos con la instruccion cat (cat arch1 arch2 ... arch10 > prov) y despues ejecutamos las siguientes lineas: 

python
mport string
text = open('prov').read()
print string.count(text, 'NORMAL')
quit()



3.  Desde Unix 
 
 
grep -c 'NORMAL' prov



N -> es el numero de veces que el status fue terminacion completa


Referencias:

Referencia 1.

No hay comentarios:

Publicar un comentario