Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CI Y
AP.
AP. MATERNO NOMBRES CODIGO
GRADO PATERNO
SAGA
TTE. INGRID
RODRIGUEZ ZEBALLOS A24009-5
ING. GUADALUPE
TTE. WILIAMS
CHACOLLA QUISPE
ADA. ARIEL
EST. DEHEZA SILVA VALERIA
Comparación de archivos
Esta podría ser la función más importante de la comparación y es
probablemente la más utilizada que cualquier otra comparación. Los
parámetros que se utilizan para la comparación de archivos
Ejemplo:
#!/bin/bash
$fichero="~/pruebas.txt"
if [ -e "$fichero" ]; then
echo "\$fichero EXISTE"
fi
if [ -f "$fichero" ]; then
echo "\$fichero es un fichero REGULAR"
fi
if [ -s "$fichero" ]; then
echo "\$fichero NO TIENE TAMAÑO CERO"
fi
if [ -d "$fichero" ]; then
echo "\$fichero es un DIRECTORIO"
fi
if [ -b "$fichero" ]; then
echo "\$fichero es un DISPOSITIVO DE BLOQUES"
Sintaxis de operadores lógicos
Comando sort
Permite ordenar y fusionar archivos de texto. La clasificación puede
hacerse en campo de caracteres o numéricos y pueden especificarse varias
claves de ordenación. El primer campo de ordenación es el 0.
Por defecto siempre compara desde el principio de línea. Y el carácter
delimitador es el espacio en blanco.
Sintaxis:
$sort [opciones] ficheros
Esta orden ordena línea a línea según el código ASCII.
Opciones:
• -c Comprueba si los archivos están ordenados, y si es así, no se genera
ninguna salida.
• -m Fusiona los archivos especificados. Asume que ya están ordenados.
• -u Elimina las líneas repetidas.
• -o archivo Especifica el nombre del archivo de salida. Si no se especifica
es la salida estándar.
• -d Solo considera letras, cifras y espacios en blanco. No caracteres
especiales.
• -f Trata mayúsculas y minúsculas como iguales.
• -i Ignora los caracteres no imprimibles de las claves de ordenación.
• -M Trata la clave de ordenación como si fuera un mes. MAY es menor que
JUN, que a su vez es menor que JUL, y así sucesivamente.
• -n Especifica que una clave es numérica, es decir, realiza la ordenación
numérica.
• -r Invierte el orden de ordenación.
• -tcar Utiliza car como separador de campo en vez de tabuladores o
blancos.
• -b Ignora blancos en la clave de ordenación.
• +num Comienza la ordenación por el campo de posición num. Recordar
que el primer campo es el cero.
• -num Detiene la comparación antes del campo de posición num. Ese
campo no lo utiliza para ordenar.
USO DE LAS HERRAMIENTAS DE PROGRAMACION
DIAGRAMA DE FLUJO\
INICIO
ARCHIVO
a
ARCHIVO
b
ARCHIVO 1 = a
ARCHIVO 2 = b
SI NO
TAMANO
DESEA
DE
ARCHIVO 1 EJECUTAR EL
== COMANDO
# TAMANO
GREEP
PALABRAS DE
ARCHIVO1 ARCHIVO2
==#PALAB
RAS
ARCHIVO2
SI NO
ERROR
DE
CONTENI PARAM
DO
PALABRAS
ETROS #
ARCHIVO PALABRAS
1=CONTE ARCHIVO1
NIDO ==#PALAB
PALABRAS #PALABRA
NO
RAS
SI S ARCHIVO2
DIFERENTES TODAS LAS
PALABRAS
CONTENI
DO
PALABRAS
ERROR
ARCHIVO1 DE
=CONTENI PARAM
SI ETROS
NO
PALABRAS
TODAS LAS
DIFERENTES
PALABRAS
C.- IMPLEMENTACIÓN
Para que el programa empieze a correr debemos empezar en colocar el
Shell del editor de comandos como comando mediante el súper usuario
ROOT en la carpeta ENVIRONMENT el archivo PATH especificando la
dirección del archivo para darle permisos de ejecución en todo el sistema
Veremos el programa realizado en un bash:
!/bin/bash
function aPregunta()
{
echo
echo
echo "======================================================="
echo "===================================================="
echo " LOS ARCHIVOS NO SON DEL MISMO TAMANO "
echo " DESEA REALIZAR LA OPERACION?"
echo "1) SI "
echo "2) NO "
echo -n " INDIQUE LA OPCION = "
}
function aPregunta2()
{
echo
echo
echo "========================================================="
echo "===================================================="
echo "LA CANTIDAD DE PALABRAS NO ES IGUAL"
echo " DESEA REALIZAR LA OPERACION"
echo " 1) SI "
echo " 2) NO "
echo -n " SELECCIONE UN VALOR = "
}
a=$1
a1=$2
a2=$3
a3=$4
a4=$5
a5=$6
opc=0
if [ $a == 1 ]
then
echo "verificamos si existen los archivos"
echo "**************"
if [ -f $a1 ] && [ -f $a2 ]
then
echo "LOS ARCHIVOS SI EXISTEN "
echo "===================================="
echo "tamano del archivo "a" es ="
du -sh $a1
echo "====================================="
echo "tamano del archivo "b" es ="
du -sh $a2
echo "LOS ARCHIVOS SI EXISTEN"
echo
if [ "du -sh $a1" == "du -sh $a2" ]
then
echo "===================================================="
echo "LOS ARCHIVOS SON DEL MISMO TAMANO"
echo "====================================================="
echo "tamano del archivo "a" es ="
du -sh $a1
echo "====================================="
echo "tamano del archivo "b" es ="
du -sh $a2
echo
echo "CONTAMOS LAS PALABRAS DE CADA ARCHIVO "
echo " CANTIDAD DE PALABRAS EN "a" = "
wc -w $a1
echo "====================================================="
echo "CANTIDAD DE PALABRAS EN EL ARCHIVO "b" = "
wc -w $a2
echo "++++++++++++++++++"
echo
if [ "wc -w $a1" == "wc -w $a2" ]
then
echo
"===================================================="
echo " VERIFIQUEMOS LA DIFERENCIA "
echo
"====================================================="
echo "LAS PALABRAS QUE SE ENCUENTRAN
DIVIDIDAS POR UNA BARRA SON LAS PALABRAS QUE DIFIEREN ="
diff -y $a1 $a2
echo "==================================="
if [ "$a1" == "$a2" ]
then
echo "SON IDENTICAS"
echo
else
echo "SON DIFERENTES"
echo
fi
exit
else
clear
opc=0
while [ $opc != 2 ]
do
clear
case $opc in
1)
aPregunta2
echo "SI "
echo "EJECUTE LA OPERACION"
echo
echo "
LAS PALABRAS DIFERENTES SON : "
echo
"======================================================"
diff -y
$a1 $a2
echo
"======================================================"
if [ "$a1" == "$a2" ]
then
echo
else
echo
fi
exit
;;
2)
aPregunta2
echo "NO"
echo " VUELVA AL INICIO"
echo
echo
;;
*)
aPregunta2
;;
esac
read opc
done
fi
else
opc=0
while [ $opc != 2 ]
do
case $opc in
1)
aPregunta
echo "SI "
echo "EJECUTE LA OPERACION"
echo
echo " CANTIDAD DE
PALABRAS EN "a" = "
wc -w $a1
echo
"====================================================="
echo "CANTIDAD DE PALABRAS
EN EL ARCHIVO "b"= "
wc -w $a2
echo
"======================================================"
echo "LOS ARCHIVOS SI
EXISTEN"
echo
if [ "wc -w $a1" ==
"wc -w $a2" ]
then
echo
"===================================================="
echo "
VERIFIQUEMOS LA DIFERENCIA "
echo
"====================================================="
echo "LAS
PALABRAS QUE SE ENCUENTRAN DIVIDIDAS POR UNA BARRA SON LAS PALABRAS QUE DIFIEREN ="
diff -y $a1
$a2
echo
"==================================="
if [ "$a1" == "$a2" ]
then
echo
else
echo
fi
exit
else
opc=0
while [ $opc != 2 ]
do
case $opc in
1)
aPregunta2
echo "SI "
echo "EJECUTE LA
OPERACION"
echo
echo "======================================================"
echo "======================================================"
if [ "$a1" == "$a2" ]
then
echo
else
echo
fi
exit
;;
2)
aPregunta2
echo "NO"
echo " VUELVA AL
INICIO"
echo
echo
;;
*)
aPregunta2
;;
esac
read opc
done
fi
;;
2)
aPregunta
echo "NO"
echo " VUELVA AL INICIO"
echo
echo
;;
*)
aPregunta
;;
esac
read opc
done
fi
else
echo "CREAR LOS ARCHIVOS a y b "
echo " creando el archo a "
cat > $a1
echo " creando el archivo b "
cat > $a2
fi
else
clear
echo "la opcion no existe vueva a intentar"
fi
D.- PRUEBAS
Para revisar el funcionamiento tenemos que tener en cuenta los siguientes
archivos y capetas:
1
E.- BALANCE
Para realizar el siguiente trabajo se usó:
Como sistema operativo nativo el Windows 10
Como virtualizador ORACLE VM VIRTUALBOX
Como sistema operativo virtual UBUNTU de Linux
La distribución que se usó fue DEBIAN 64 bits