Está en la página 1de 8

Conceptos Fundamentales sobre UNIX

Laboratorio 8.5.2 – Búsqueda, Exploración y Ordenamiento de Archivos


(Tiempo estimado: 45 min.)

Objetivos:
• Familiarizarse con los comandos de procesamiento de archivos grep y sort
• Buscar archivos por nombre utilizando el comando find
• Buscar archivos por tipo utilizando el comando find
• Buscar archivos por fecha de última modificación utilizando el comando find
• Explorar en busca de cadenas en archivos por medio del comando grep
• Editar archivos por medio del comando sed
• Ordenar archivos por medio del comando básico sort
• Ordenar archivos utilizando opciones del comando sort
• Utilizar el Administrador de Archivos del CDE para buscar archivos

Trasfondo:
En este laboratorio, se utilizan comandos UNIX avanzados para buscar archivos y cadenas
específicas contenidas en los archivos. El Administrador de Archivos del CDE se utilizará para
localizar archivos basándose en el nombre de archivo o en el contenido del mismo. El comando
find puede utilizarse para buscar archivos en cualquier parte de la estructura de directorios. El
comando grep se utiliza para buscar cadenas o caracteres específicos en un archivo y hacer una
lista de los archivos y de las líneas donde se encuentran. Este laboratorio requiere que el usuario
utilice el comando sort para ordenar el contenido de un archivo y utilizar un pipe para pasar los
resultados de otro comando a los comandos sort y grep.

Herramientas / Preparación:
a) Antes de iniciar este laboratorio, el alumno deberá revisar el Capítulo 8, Sección 2 –
Comandos de Procesamiento de Archivos.
b) Se requieren los siguientes materiales:
1. Una ID de login del usuario (por ej., user2) y una contraseña.
2. Una computadora que ejecute el sistema operativo UNIX con el CDE.
3. Computadoras en red en el aula con el sistema de archivos de la clase instalado.

Notas:
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________

1-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.
Utilice el diagrama del árbol de directorios del sistema de archivos de la clase de muestra
para que lo asista en este laboratorio.

Estructura del Árbol de Archivos de la Clase

Paso 1. Hacer login al CDE.


El alumno deberá hacer login con el nombre de usuario y la contraseña asignados por el instructor,
en el recuadro de entrada del CDE.

Paso 2. Acceder a la Línea de Comandos.


Haga clic con el botón derecho en el fondo del espacio de trabajo y haga clic en Tools
(Herramientas). Seleccione Terminal desde el menú para abrir una ventana de terminal.

Búsqueda de Archivos – Descripción General


El comando find puede utilizarse para buscar archivos basándose en criterios específicos. Una
vez que se encuentre un archivo o grupo de archivos que coincidan con el criterio de búsqueda,
puede ejecutarse otro comando sobre los archivos coincidentes. El comando find puede utilizarse
para muchos propósitos incluyendo el borrado, el copiado de seguridad o la impresión de archivos
una vez encontrados. El comando find puede utilizarse para localizar archivos en una unidad de
disco duro local o en servidores remotos.

El comando find se inicia en el punto de la jerarquía de directorios especificado y explora todos


los directorios y subdirectorios que se encuentran por debajo de ese punto. Explorar el disco duro
desde la raíz puede tomar mucho tiempo. Una vez hallado el archivo, éste aparece en una lista con
el directorio de inicio y cualquier subdirectorio que haya por debajo de él. Para saber más acerca
del comando find , refiérase a las páginas man.

Hay una cantidad de opciones y variaciones del comando find . El formato del comando find se
muestra a continuación:

2-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.
Formato del Comando: find ruta expresión acción

Directorio Criterio de Comandos


de Inicio Búsqueda Opcionales

Opciones de Ruta
La ruta nombra al directorio donde comienza la búsqueda. La ruta puede ser un tilde (~) que
representa al directorio home, un punto (.) que representa al directorio actual, un nombre de ruta
absoluto o relativo, o incluso el directorio raíz.

Opciones de Expresión de Búsqueda


La expresión es una o más opciones de criterios de búsqueda que indican qué buscar y es
especificada por uno o más valores. Las opciones básicas de búsqueda incluyen el nombre, tipo y
tamaño de archivo. Las opciones deben ir precedidas por una raya.

Nota: al buscar por nombre de archivo pueden utilizarse los wildcards asterisco (*) y signo
de interrogación (?) pero la cadena y el carácter wildcard deben ir entre comillas (simples o
dobles).

Opciones de Acción
La opción Acción al final del comando es opcional y puede utilizarse para ejecutar varios comandos
después de haber hallado el o los archivos deseados.

Paso 3. Buscar archivos por nombre.


En el siguiente ejemplo, la búsqueda comienza en el directorio /usr/bin y busca todos los archivos
cuyo nombre empieza con la letra c.

Ejemplo: find /usr/bin -name ’c*’( o “c*” )

a. Introduzca el comando que sirve para cambiarse al directorio home. ¿Qué comando se
introdujo? _cd_

b. Utilice el comando find para localizar un archivo llamado mars a partir del directorio
home. ¿Qué comando se utilizó? ¿En qué directorio se encontraba el archivo?
___find /home/user2/ -name mars___
__Se encontraba en el directorio dir3/planets__

c. A partir del directorio dir1, utilice el comando find para localizar un archivo llamado
beans. ¿Qué comando se utilizó? __find dir1 -name ‘beans’__ ¿En qué
directorio se encontraba el archivo? _En el directorio coffees_

d. A partir del directorio home, utilice el comando find para localizar todos los archivos y
directorios del árbol del sistema de archivos de la clase que comiencen con la letra p.
¿Qué comando se utilizó? _find /home/user2/ -name 'p*'_

e. ¿Cuántos directorios y archivos se localizaron? _Se localizaron 10 directorios y 24 archivos_

f. ¿Cuáles eran su ruta y nombre de archivo/directorio? _./proj-b, ./practice, ./proj-b.bak


./dir3/planets, ./dir3/planets/pluto_

Paso 4. Buscar archivos por tipo.


En el siguiente ejemplo, la búsqueda comienza en el directorio /etc y se buscan todos los archivos
cuyo tipo sea d (directorio).

3-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.
Ejemplo: find /etc -type d

a. A partir del directorio home, utilice el comando find para identificar todos los archivos
tipo d (directorios y subdirectorios). ¿Qué comando se utilizó?
____find /home/user2/ -type d____
____find /home/darlinte/ -type d_____

b. ¿Cuántos directorios se identificaron?


666 directorios y subdirectorios_

Paso 5. Buscar archivos por fecha de última modificación.


En el siguiente ejemplo, la búsqueda comienza en el directorio home del usuario y busca todos los
archivos, que no hayan sido modificados durante más de 90 días.

Ejemplo: find ~ -mtime +90

a. Utilice el comando find para identificar todos los archivos que no hayan sido
modificados dentro de los últimos 90 días. ¿Qué comando se utilizó?
__find -mtime +90__

b. ¿Cuántos archivos se identificaron? __Se indicaron 30 archivos.__

Paso 6. Buscar cadenas en archivos.


El comando grep (Global Regular Expression Print – Impresión de Expresión Regular Global) se
utiliza para explorar un archivo o el resultado de un comando en busca de una cadena de texto
especificada. Una cadena es uno o más caracteres; puede ser un carácter, una palabra o una
oración. Una cadena puede incluir un espacio en blanco o puntuación si se la encierra entre
comillas. El comando grep explora un archivo en busca de una cadena de caracteres e imprime
todas las líneas que contienen ese patrón en la pantalla. El comando grep se utiliza
frecuentemente en una línea de pipes con otros comandos. Por ejemplo, puede emitirse el
comando ps (process status – estado del proceso) y buscar todas las apariciones de un proceso
específico. El comando grep es sensible al uso de mayúsculas y minúsculas. El patrón debe
coincidir con respecto a las letras mayúsculas y minúsculas, a menos que se utilice la opción –i,
que ignora si las letras son mayúsculas o minúsculas. La opción –v busca todas las líneas que no
coinciden con la cadena especificada.

Formato del Comando: grep *[opción(es)] cadena ruta/nombre de archivo

Qué Buscar En Qué Archivo(s) Buscar

En el siguiente ejemplo, el comando grep se utiliza para buscar todos los archivos (indicado por el
asterisco) en el directorio actual (indicado por ./) para localizar archivos que posean la cadena de
caracteres xyz en ellos.

Ejemplo: grep xyz ./*

a. Utilice el comando grep para identificar todos los archivos del directorio home que
tienen la palabra mango , pera en ellos. ¿Qué comando se utilizó? _grep mango ./*_ __ grep pera ./*

b. ¿Cuántos archivos aparecen en la lista? __ninguno__ ¿Cuáles son los


nombres de los archivos? _

Si se utiliza el comando_grep pera ./* _ aparecen 3 archivos (dante, fruit, fruit2)

4-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.
c. Cámbiese al directorio padre del directorio home del usuario (/home). ¿Qué comando
se utilizó? _cd .._

d. Utilice el comando grep para explorar todos los archivos del directorio home y haga
una lista de los nombres de archivo y de las líneas que tienen la palabra week en ellas.
¿Qué comando se utilizó? __grep week ./*_

e. ¿Cuántos archivos/líneas aparecieron en la lista? __ninguno__


____ ¿Cuáles son los nombres de los archivos? _____________________________

f. Utilice el pipe con el resultado del comando ls –l para dirigirlo al comando grep y
explore todos los archivos que son propiedad de la ID de usuario actual. ¿Qué
comando se utilizó? __ls -l | grep user2__ ¿Cuántos archivos
aparecieron en la lista? __________23_____________

Paso 7. Edición de archivos con sed.


El comando sed (stream editor – editor de flujo) es otra utilidad de coincidencia de patrones con
eficaces capacidades de procesamiento. La utilidad sed lee las líneas de un archivo de texto, una
por una. Esta utilidad aplica un conjunto de comandos de edición a las líneas sin abrir el archivo en
un editor de texto como vi. Al igual que grep, sed no efectúa cambios en el archivo original y envía
los resultados al resultado estándar. Para que los cambios sean permanentes, el usuario debe
redireccionar el resultado a un archivo. De manera similar al comando grep, sed utiliza algunos
metacaracteres especiales para controlar la exploración en busca de patrones. sed es un comando
muy potente y flexible cuando se lo utiliza desde la línea de comandos y en scripts de shell.

Formato del Comando: sed [opción(es)] dirección ruta/nombre de archivo


[>archivo_nuevo] O Comando | sed [opción(es)]
dirección

5-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.
Ejemplo Resultado
sed –n ’20,25p’ archivo Muestra sólo las líneas 20 a 25.
sed ‘5d’ archivo Borra la línea 5.
ls –l | sed ‘/[Tt]est/d’ > newfile Borra todas las líneas que contengan
Test o test en el resultado de ls –l,
colocando los resultados en el archivo
newfile.
sed ‘s/....//’ archivo Borra los primeros cuatro (....)
caracteres de cada línea.
sed ‘s/....$//’ archivo Borra los últimos cuatro (....) caracteres
de cada línea.
ls –l | sed ‘5,$d’ > newfile Borra desde la línea 5 hasta la última en
el resultado de ls –l, colocando los
resultados en el archivo newfile.
sed –n ‘/^$d’ archivo > newfile Borra las líneas en blanco del archivo
colocando los resultados en newfile.
ls –l | sed ‘s/ */:/g’ Busca (search) (s) al menos uno o más
espacios y los reemplaza globalmente
(g) por dos puntos (:). Nota: sin el
comando g, sed sólo reemplazaría el
primer espacio y no continuaría
buscando otras apariciones de un
espacio en la misma línea.
sed ‘1,10s/Windows/UNIX/g’ archivo Busca (s) Windows y reemplaza
globalmente (g) todas las apariciones de
Windows en cada línea cada vez que
aparezca en las primeras 10 (1,10)
líneas.
ls –l | sed ‘s/$/EOL/’ Adjunta EOL al final de cada línea.
sed ‘s/^/ /’ file Busca el principio de cada línea (^) del
archivo y agrega espacios.
sed –e ‘s/Dante/DANTE/g’ –e Lleva a cabo dos ediciones en la misma
‘s/poet/POET/g’ dante > newdante línea de comandos y coloca los
resultados en el archivo newdante.

a. Cámbiese de directorio, al directorio home del usuario y luego aplique cat al archivo
fruit.
b. Utilice sed sobre el archivo fruit y borre todas las líneas que contengan la palabra
‘orange’. Por defecto el resultado se mostrará en la pantalla. ¿Qué comando se utilizó?
_sed '/orange/d' fruit_
c. Genere un listado largo de los archivos del directorio actual. Utilice el resultado del
listado largo con sed nuevamente para borrar todas las líneas que contengan el
número 0 (cero). ¿Qué comando se utilizó? __ls -l | sed '/0/d'__
d. Redirija el resultado generado en el paso c) a un archivo llamado ls1.file. ¿Qué
comando se utilizó? _ls -l | sed '/0/d' > ls1.file_
e. Utilizando sed, borre la última línea del archivo fruit. ¿Qué comando se utilizó?
__sed '$d' fruit_
f. Utilizando sed, borre de la línea número 2 a la línea número 5 del archivo fruit. ¿Qué
comando se utilizó? __sed '2,5d' fruit__
g. Utilice pipe con el resultado del comandols –l para dirigirlo a sed y borre de la
línea 4 a la última del resultado. Colóquelo en un nuevo archivo llamado ls2.file. ¿Qué
comando se utilizó? __ls -l | sed '4,$d' > ls2.file__
h. Utilizando sed, busque y borre los primeros tres caracteres de cada línea del archivo
file3. ¿Qué comando se utilizó? ___sed 's/...//' file3__

6-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.
i. Utilizando sed, agregue un signo numeral (#) al final de cada línea del archivo fruit2.
¿Qué comando se utilizó? __sed 's/$/#/' fruit2__
j. Utilizando sed, sustituya todas las apariciones de la cadena ‘the’ por ‘SUN’ en el
archivo dante. ¿Qué comando se utilizó? __sed 's/the/SUN/' dante__

Paso 8. Ordenar archivos por medio del comando sort básico.


El comando sort proporciona una forma rápida y fácil de organizar los datos en orden ya sea
numérico como alfabético. El comando sort funciona sólo con archivos de texto ASCII y producirá
resultados impredecibles con los ejecutables o archivos creados por aplicaciones tales como
FrameMaker. Este comando utiliza el conjunto de caracteres ASCII como referencia para el
ordenamiento, y funciona de izquierda a derecha y carácter por carácter. Por defecto, sort se
basa en los espacios en blanco para delimitar (separar) los diversos campos dentro de los datos de
un archivo. Existe una cantidad de opciones disponibles con el comando sort. Éstas permiten al
operador definir el tipo de ordenamiento a llevar a cabo así como el campo a partir del cual
empezar a ordenar.

Formato del Comando: sort [opciones] [nombre_de_archivo_de_entrada]

En el siguiente ejemplo, el comando sort se utiliza para producir un ordenamiento del tipo ASCII,
comenzando por el primer carácter de cada línea, para file2.

Ejemplo: sort file2

a. Muestre el contenido del archivo fruit del directorio home. ¿Qué comando se utilizó?
__cat fruit__ ¿Están los nombres de las frutas del archivo ordenadas
alfabéticamente? __NO__

b. Utilice el comando sort para ordenar el contenido del archivo fruit. ¿Qué comando se
utilizó? ___sort fruit___ ¿Están ahora los nombres de las frutas del
archivo ordenadas alfabéticamente? __SI__

Paso 9. Ordenar archivos con las opciones de sort.


Existen muchas opciones que pueden utilizarse con el comando sort. El ejemplo que figura más
abajo es un ordenamiento numérico (n) según el segundo campo de un archivo ( sort saltea un
separador con la sintaxis +1).

Ejemplo: sort +1n fileX

a. Cree un archivo llamado pslist redireccionando el resultado del comando ps –e


(estado del proceso – hacer una lista con cada proceso. Recuerde, el símbolo de
redireccionamiento es un símbolo mayor que). ¿Qué comando se utilizó?
___ps -e > pslist___

b. Muestre el contenido del archivo pslist creado utilizando el comando more. ¿Cuántas
columnas de información hay? __4__ ¿Está ordenado el archivo por alguna
de estas columnas? _Si por la primera columna_

c. La ID o número del proceso es la primera columna. Ordene el archivo por la primera


columna (no se requieren opciones). ¿Se ordenó el resultado del comando sort por
ID del proceso? __Si__
ta
d. El nombre del proceso es la última columna, o sea la 4 . Para ordenar este archivo
ta
según la 4 columna y redirigir el resultado a un archivo llamado pslist2, ¿qué
comando se introdujo? _sort -k 4 pslist > pslist2_

7-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.
Paso 10. Buscar archivos con el Administrador de Archivos.
La opción Find (Buscar) del menú File (Archivo) del Administrador de Archivos proporciona
herramientas para localizar archivos y directorios basándose en varios criterios de búsqueda. Find
del Administrador de Archivos puede llevar a cabo muchas de las funciones del comando find , así
como del comando grep. Los criterios pueden ser el nombre de una carpeta o archivo o, en el
caso de un archivo, su contenido.

a. Inicie el Administrador de Archivos haciendo clic en la carpeta de archivos del panel


frontal y haga clic en el menú File. ¿Qué opción buscará los archivos por nombre o
contenido? __El panel de búsqueda del administrador de archivos al presionar la lupa_

b. Seleccione lo siguiente desde la ventana Find; Find items in: (Buscar elementos en:)
My home directory (Mi directorio home), Whose name: (Cuyo nombre:) Contains
(Contiene), los caracteres “file”. Luego haga clic en find. ¿Cuántos archivos se
hallaron? __Se hallaron 7 archivos._

c. Inicie otra búsqueda pero esta vez haga clic en el botón More Criteria (Más Criterios).
Haga clic en la opción del nombre para deseleccionarla y luego haga clic en content
(contenido). Haga clic en OK. Introduzca la palabra work en el campo que indica qué
buscar y luego haga clic en find. ¿Cuál era el nombre del archivo que contenía la
palabra work? __lab8_5_2.odg__

d. Inicie otra búsqueda. Haga clic en el botón More Criteria. Haga clic en la opción
content para deseleccionarla y luego haga clic en size (tamaño). Haga clic en OK.
Seleccione Greater Than (Más Grande Que) e introduzca 10 (10 Kilobytes o
aproximadamente 10.000 bytes) en el campo de búsqueda y haga clic en find.
¿Apareció en la lista el archivo beans? ___Si apareció en la lista.___

e. Navegue hasta el archivo beans y haga clic sobre él con el botón derecho. Haga clic
en Properties (Propiedades) y luego en Information (Información). ¿Cuál es el tamaño
exacto del archivo beans? __Es 333 bytes_

Paso 11. Borrar los archivos y directorios creados en este laboratorio.


Tomando como referencia la estructura del árbol del sistema de archivos de la clase, borre todos
los archivos y directorios creados en el directorio home durante este laboratorio.

8-8 Conceptos Fundamentales sobre UNIX 2.0 – Lab 8.5.2 Copyright ® 2002, Cisco Systems, Inc.

También podría gustarte