grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd
Estructura
Crear Grupo
sudo groupadd mi_grupo
Crear Usuario
sudo useradd mi_usuario
Asignar Usuario a Grupo
sudo usermod -a -G nombre_del_grupo nombre_de_usuario
getfacl
Al ejecutar getfacl en un archivo o directorio, la salida típica incluye:
Comando
getfacl nombre_archivo
Salida
# file: Muestra el nombre del archivo o directorio.
# owner: Muestra el nombre del propietario.
# group: Muestra el nombre del grupo asociado.
user::rwx: Muestra los permisos del propietario (donde rwx puede variar según los permisos actuales).
group::r-x: Muestra los permisos del grupo (los permisos pueden variar).
other::r--: Muestra los permisos para otros (pueden variar).
Claro, aquí tienes un resumen sobre cómo se aplican y priorizan los diferentes tipos de permisos en sistemas Unix y Linux, incluyendo permisos tradicionales y ACL (Listas de Control de Acceso):
1. Permisos Tradicionales (chmod):
- Propietario (u): Los permisos del propietario tienen la prioridad inicial sobre el archivo o directorio. Si el propietario tiene permisos de lectura, escritura o ejecución, estos se aplican directamente al propietario, sin interferencia de las ACL.
- Grupo (g): Los permisos de grupo se aplican a todos los usuarios que son miembros del grupo asociado al archivo o directorio. Si hay permisos de grupo específicos (como lectura o escritura), estos afectan a todos los miembros del grupo.
- Otros (o): Los permisos para “otros” se aplican a todos los demás usuarios del sistema que no son ni el propietario ni miembros del grupo asociado.
2. Listas de Control de Acceso (ACL):
- ACL de Usuario: Si se define una ACL específica para un usuario (con
setfacl -m u:nombredeusuario:permisos archivo
), estos permisos tienen prioridad sobre los permisos de grupo y “otros” para ese usuario específico, pero no necesariamente sobre los permisos del propietario si el usuario es el propietario. - ACL de Grupo: Si se establece una ACL para un grupo específico (con
setfacl -m g:nombredelgrupo:permisos archivo
), estos permisos afectan a todos los miembros de ese grupo específico, pero solo si son más permisivos que los permisos del grupo definidos porchmod
. - Máscara (mask): La máscara de una ACL limita los permisos máximos que pueden ser otorgados por las ACL de usuario y grupo. La máscara actúa como un tope máximo para los permisos de ACL, pero no afecta los permisos del propietario establecidos por
chmod
. - Otros y ACL por defecto: Las ACL también pueden definir permisos para “otros” y establecer ACL predeterminadas para directorios, que afectan la creación de nuevos archivos y subdirectorios.
Prioridades y Resolución de Conflictos:
- Permisos del Propietario: Los permisos de
chmod
para el propietario siempre se respetan para el propietario del archivo o directorio. - ACL de Usuario vs. Permisos de Grupo de
chmod
: Para usuarios específicos, las ACL de usuario tienen prioridad sobre los permisos de grupo establecidos porchmod
. - ACL de Grupo vs. Permisos de Grupo de
chmod
: Los permisos de las ACL de grupo solo se aplican si son más permisivos que los permisos de grupo dechmod
o si no hay conflictos directos. - Permisos para “Otros”: Se respetan según
chmod
a menos que se especifiquen explícitamente mediante ACL. - Máscara (mask): Limita los permisos efectivos de las ACL de usuario y grupo, pero no afecta los permisos del propietario de
chmod
. - Permisos Más Restrictivos: En cualquier conflicto entre diferentes tipos de permisos, los permisos más restrictivos prevalecen.
Mientras que las ACL permiten una granularidad mayor, no pueden conceder más permisos que los establecidos por los permisos base (chmod
). Además, la resolución de permisos efectivos depende de una combinación de estos controles, aplicando reglas específicas para resolver qué permisos prevalecen en diferentes situaciones.
Conclusión
Los permisos primarios como los permisos de usuario y grupos secundario son los principales. Mas que los permisos del ACK
Si un usuario tiene varios grupos ACK, toma los permisos del grupo mas permisivos que tenga. Siempre conviene que el grupo no tenga permisos para nada, mas que los justos
setfacl -R -m g::--- carpeta
redes@debian:~/Desktop$ ls -l ISO
total 48
drwxr-xr-x 2 redes users 4096 Feb 19 11:01 Documentos
drwxr-xr-x 2 redes users 4096 Feb 19 11:01 Ejemplos
drwxr-xr-x 7 redes users 4096 Feb 19 11:01 Otros
drwxr-xr-x 2 redes users 4096 Feb 19 11:01 PracticaNormalParciales
drwxr-xr-x 10 redes users 4096 Feb 19 11:01 Practicas
-rw-r--r-- 1 redes users 23639 Feb 19 11:01 README.md
drwxr-xr-x 9 redes users 4096 Feb 19 11:01 Teoria
redes@debian:~/Desktop$ find ISO -type d \( -path ISO/Teoria -o -path ISO/Practicas \) -prune -o -exec setfacl -m g:Director:--- {} \;
redes@debian:~/Desktop$ ls -l ISO
total 48
drwxr-xr-x+ 2 redes users 4096 Feb 19 11:01 Documentos
drwxr-xr-x+ 2 redes users 4096 Feb 19 11:01 Ejemplos
drwxr-xr-x+ 7 redes users 4096 Feb 19 11:01 Otros
drwxr-xr-x+ 2 redes users 4096 Feb 19 11:01 PracticaNormalParciales
drwxr-xr-x 10 redes users 4096 Feb 19 11:01 Practicas
-rw-r--r--+ 1 redes users 23639 Feb 19 11:01 README.md
drwxr-xr-x 9 redes users 4096 Feb 19 11:01 Teoria
redes@debian:~/Desktop$
Comandos
Comandos Practica 1
Sudo
Sudo es un programa diseñado para facilitar a los administradores del sistema permitir a algunos usuarios ejecutar órdenes como root (u otro usuario).
Comando | Funcion |
---|---|
apt install sudo | Instala el sudo en debian 11 |
cat /var/log/syslog | Muestra el contenido dentro del fichero |
more /var/log/syslog | Igual que cat solo que muestra linea por linea |
less /var/log/syslog | Limita la cantidad de lineas visibles |
vi nomArchivo | i para cambiar de modo, escribirmos, luego esc y despues :wq |
file nombreArchivo | Muestra que tipo de contenido posee |
cd Desktop | Permite meternos en un directorio |
cd .. | Para retroceder en el directorio |
mkdir "ISO 2022" | Crea carpetas |
touch ISO2022-1 ISO2022-2 | Crea dos archivos |
ls | Lista el contenido del directorio actual |
pwd | Visualiza la ruta donde estoy situado |
find ./'ISO 2022' -name "ISO*" | Busca todos los archivos en los que su nombre contiene la cadena “iso*” |
df | Informa la cantidad de espacio libre en disco |
who | Verifica los usuarios conectados al sistema |
tail ISO2022-1 | Muestra en pantalla las últimas líneas de un archivo |
⚠️ Peligrosos ⚠️
Antes de usar un comando sudo
, primero tenes que entrar como super-usuario con el comando su
Comando | Funcion |
---|---|
shutdown | Permite apagar, reiniciar y detener tu sistema |
sudo shutdown | Apaga el sistema luego de 2 minutos aprox |
sudo shutdown now | Apaga el sistema ahora |
sudo shutdown -r | Reinicia el sistema luego de 2 minutos aprox |
sudo shutdown -c | Cancela el reinicio/apagado |
sudo reboot | Reinicia el equipo |
sudo halt | Detiene la CPU del ordenador |
locate nomArchivo | Como el find pero mas canchero |
sudo apt install locate | Instalar el locate |
uname -letra | Verifica la información del sistema (s, r, v, n, m, p, i, o, a) |
gmesg | No lo pude hacer funcionar (puede ser el dmesg ?) |
lspci | Lista todos los componentes tipo pci |
at 10:00 PM accion | (se sale con Ctrl + D) Nos permite programar tareas |
sudo apt update, sudo apt install at | instalar el at |
netstat | Muestra información sobre las conexiones de red |
sudo apt install net-tools | Instala netstat |
mount | Permite montar dispositivos/particiones para su uso por el so |
sudo apt install nfs-common | Instala el mount |
umount -V | Permite eliminar un sArch remoto que esté montando en la actualidad |
head nomArchivo | Puestra el principio de un archivo |
losetup | Se utiliza para fijar el dispositivo de bucle |
Comandos Practica 2
Comando | Funcion |
---|---|
ls /etc/rc0.d | miramos el conenido de la runlevel 0. Estos scripts |
sudo runlevel | nos muestra la runlevel actual |
sudo telinit 2 | nos cambia a la runlevel 2 |
sudo adduser usuarioNuevo | Crea un usuario |
sudo groupadd grupode5 | Crea un grupo |
sudo groupdel grupode5 | Elimina un grupo |
sudo usermod -a -G grupode5 pepe | Agrega usuarios a un grupo |
id -nG iso2022 | Muestra los grupos a los que pertenece un usuario |
sudo login iso2022 | Logueo como otro usuario |
sudo userdel iso2022 | Elimina un usuario |
groups | Permite ver los grupos a los que pertenece mi usuario |
su | Entrar como super usuario |
who | Verifiqua los usuarios conectado al sistema |
passwd | Cambia la constraseña del usuario actual |
chmod (u,g,o)(+,=)(w,rw,rwx) archivo.txt | Nos permite modificar cualquier permiso |
chown nombreUsuario nombreArchivo | Cambia el propietario de un archivo |
chgrp | Igual que chwon sintaxis mas simple |
du | Muestra tamaño de ficheros y carpetas (actual) |
rmdir nombreCarpeta | Elimina una carpeta |
cp nombreArchivo nombreCarpeta | Sirve para copiar archivos y directorios dentro del sArch |
mv | e utiliza para mover o renombrar los archivos y directorios |
ps | posee algunas opciones para mostrar los procesos en ejecución |
ls | more | Se ejecuta el comando ls y la salida del mismo, es enviada como entrada del comanda more |
grep -iRl .conf | Buscar todos los archivos de usuarios en los que su nombre contiene la cadena “.conf” |
tar cvf ejercicio6.tar directorioNuevo | Comprime el directorio o archivo marcado |
gzip | comprime/descomprime archivos (Parametros que puede recibir) |
zgrep | lo mismo que grep pero puede estar comprimido el archivo |
wc | cuenta nuevas líneas, palabras y bytes para los archivos |
Find
El comando find
en Linux es una herramienta poderosa y flexible utilizada para buscar archivos y directorios en el sistema de archivos. Permite realizar búsquedas basadas en una amplia variedad de criterios como nombre, tipo, permisos, tamaño, fecha de modificación y más. Aquí se presenta una explicación detallada del comando find
, incluyendo su sintaxis, opciones comunes, y ejemplos prácticos.
Sintaxis Básica
find [ruta] [expresiones]
- ruta: El directorio donde se iniciará la búsqueda. Si se omite,
find
busca en el directorio actual. - expresiones: Condiciones que determinan qué archivos o directorios se buscarán.
Opciones y Expresiones Comunes
1. Buscar por Nombre
-
-name
: Busca archivos y directorios que coincidan exactamente con el nombre especificado (sensible a mayúsculas y minúsculas).find /ruta -name "archivo.txt"
-
-iname
: Busca archivos y directorios sin diferenciar entre mayúsculas y minúsculas.find /ruta -iname "archivo.txt"
2. Buscar por Tipo
-
-type
: Especifica el tipo de archivo a buscar.find /ruta -type f # Archivos regulares find /ruta -type d # Directorios find /ruta -type l # Enlaces simbólicos find /ruta -type c # Dispositivos de caracteres find /ruta -type b # Dispositivos de bloques
3. Buscar por Tamaño
-
-size
: Busca archivos según su tamaño.find /ruta -size +100M # Más de 100 megabytes find /ruta -size -50k # Menos de 50 kilobytes find /ruta -size 10M # Exactamente 10 megabytes
4. Buscar por Permisos
-
-perm
: Busca archivos con permisos específicos.find /ruta -perm 644 # Archivos con permisos 644 find /ruta -perm -u+x # Archivos ejecutables por el propietario find /ruta -perm /a+w # Archivos escribibles por cualquier usuario
5. Buscar por Propietario y Grupo
-
-user
: Busca archivos pertenecientes a un usuario específico.find /ruta -user nombre_usuario
-
-group
: Busca archivos pertenecientes a un grupo específico.find /ruta -group nombre_grupo
6. Buscar por Fecha
-
-mtime
: Busca archivos modificados hace un cierto número de días.find /ruta -mtime -7 # Modificados en los últimos 7 días find /ruta -mtime +30 # Modificados hace más de 30 días
-
-atime
: Busca archivos accedidos hace un cierto número de días.find /ruta -atime -7
-
-ctime
: Busca archivos cuyo estado (metadatos) ha cambiado hace un cierto número de días.find /ruta -ctime -7
7. Acciones
-
-exec
: Ejecuta un comando en cada archivo encontrado.find /ruta -name "*.txt" -exec rm {} \; # Elimina todos los archivos .txt encontrados find /ruta -type f -exec chmod 644 {} \; # Cambia permisos de todos los archivos a 644
-
-ok
: Similar a-exec
, pero pide confirmación antes de ejecutar el comando.find /ruta -name "*.txt" -ok rm {} \;
-
-delete
: Elimina los archivos encontrados.find /ruta -name "*.bak" -delete # Elimina todos los archivos .bak encontrados
-
-print
: Imprime la ruta de los archivos encontrados (comportamiento por defecto si no se especifica ninguna acción).find /ruta -name "*.txt" -print
8. Buscar en Archivos y Subdirectorios Específicos
-
-maxdepth
: Limita la profundidad máxima de búsqueda.find /ruta -maxdepth 2 -name "*.txt" # Busca solo en los primeros dos niveles de subdirectorios
-
-mindepth
: Limita la profundidad mínima de búsqueda.find /ruta -mindepth 2 -name "*.txt" # Busca en subdirectorios a partir del segundo nivel
9. Buscar por Varios Criterios
-
-and
o-a
: Combina criterios (implícito).find /ruta -name "*.txt" -type f # Busca archivos .txt que son archivos regulares
-
-or
o-o
: Busca archivos que cumplen uno u otro criterio.find /ruta -name "*.txt" -o -name "*.md" # Busca archivos .txt o .md
-
-not
o!
: Excluye archivos que cumplen un criterio.find /ruta -not -name "*.bak" # Busca archivos que no son .bak
Ejemplos Prácticos
-
Buscar archivos con extensión
.log
modificados en los últimos 7 días:find /var/log -name "*.log" -mtime -7
-
Eliminar todos los archivos
.tmp
en el directorio actual y sus subdirectorios:find . -name "*.tmp" -delete
-
Buscar archivos mayores de 100 MB en el directorio
/home
:find /home -size +100M
-
Buscar archivos con permisos 755 y cambiarles los permisos a 644:
find /home -perm 755 -exec chmod 644 {} \;
-
Buscar y listar archivos de un usuario específico:
find / -user username -print
-
Buscar archivos de un cierto tipo (por ejemplo, archivos regulares) y ejecutar un comando (por ejemplo,
ls -l
):find /ruta -type f -exec ls -l {} \;
-
Buscar archivos que no pertenecen a un usuario específico:
find /ruta -not -user username
Resumen
El comando find
es extremadamente versátil y puede utilizarse para buscar archivos y directorios según una amplia variedad de criterios. Al combinar múltiples opciones y expresiones, se puede realizar búsquedas muy específicas y ejecutar acciones sobre los archivos encontrados. Esta flexibilidad hace de find
una herramienta esencial para la administración de sistemas en Linux.
Comandos en Linux: Explicación Detallada
1. grep
Descripción:
grep
es una herramienta utilizada para buscar patrones de texto en archivos o flujos de datos. Es muy poderoso y flexible, permitiendo buscar cadenas simples o expresiones regulares complejas.
Sintaxis:
grep [opciones] patrón [archivo...]
Ejemplos Prácticos:
-
Buscar una cadena en un archivo:
grep "cadena" archivo.txt
Esto buscará “cadena” en
archivo.txt
y mostrará las líneas que la contengan. -
Buscar sin diferenciar mayúsculas y minúsculas:
grep -i "cadena" archivo.txt
-
Buscar recursivamente en un directorio:
grep -r "cadena" /ruta/al/directorio
-
Mostrar número de línea:
grep -n "cadena" archivo.txt
2. sort
Descripción:
sort
ordena las líneas de texto en archivos o flujos de datos según diferentes criterios.
Sintaxis:
sort [opciones] [archivo...]
Ejemplos Prácticos:
-
Ordenar un archivo alfabéticamente:
sort archivo.txt
-
Ordenar de forma inversa:
sort -r archivo.txt
-
Ordenar numéricamente:
sort -n archivo.txt
3. uniq
Descripción:
uniq
filtra líneas repetidas consecutivas en un archivo o flujo de datos. Se suele usar después de sort
.
Sintaxis:
uniq [opciones] [archivo]
Ejemplos Prácticos:
-
Eliminar líneas duplicadas consecutivas:
sort archivo.txt | uniq
-
Contar ocurrencias de líneas únicas:
sort archivo.txt | uniq -c
4. strings
Descripción:
strings
imprime las cadenas de caracteres legibles en un archivo binario. Es útil para extraer texto de archivos binarios o ejecutables.
Sintaxis:
strings [opciones] archivo
Ejemplos Prácticos:
- Mostrar cadenas legibles en un archivo binario:
strings archivo.bin
5. base64
Descripción:
base64
se utiliza para codificar o decodificar datos en formato Base64, que es una representación de datos binarios en texto.
Sintaxis:
base64 [opciones] [archivo]
Ejemplos Prácticos:
-
Codificar un archivo en Base64:
base64 archivo.bin > archivo.b64
-
Decodificar un archivo en Base64:
base64 -d archivo.b64 > archivo.bin
6. tr
Descripción:
tr
traduce o elimina caracteres en un flujo de datos. Es muy útil para manipular texto.
Sintaxis:
tr [opciones] set1 [set2]
Ejemplos Prácticos:
-
Convertir minúsculas a mayúsculas:
echo "hola mundo" | tr 'a-z' 'A-Z'
-
Eliminar caracteres específicos:
echo "hola mundo" | tr -d 'o'
7. tar
Descripción:
tar
se utiliza para crear, extraer y manipular archivos tarball, que son archivos de archivo comúnmente usados en Unix y Linux.
Sintaxis:
tar [opciones] [archivo]
Ejemplos Prácticos:
-
Crear un archivo tar:
tar -cvf archivo.tar directorio/
-
Extraer un archivo tar:
tar -xvf archivo.tar
-
Crear un archivo tar comprimido con gzip:
tar -czvf archivo.tar.gz directorio/
8. gzip
Descripción:
gzip
se utiliza para comprimir archivos, reduciendo su tamaño.
Sintaxis:
gzip [opciones] [archivo]
Ejemplos Prácticos:
-
Comprimir un archivo:
gzip archivo.txt
-
Descomprimir un archivo:
gzip -d archivo.txt.gz
9. bzip2
Descripción:
bzip2
es similar a gzip
, pero utiliza un algoritmo de compresión diferente que a menudo proporciona una mejor compresión.
Sintaxis:
bzip2 [opciones] [archivo]
Ejemplos Prácticos:
-
Comprimir un archivo:
bzip2 archivo.txt
-
Descomprimir un archivo:
bzip2 -d archivo.txt.bz2
10. xxd
Descripción:
xxd
crea un volcado hexdump de un archivo o puede revertir un hexdump a su formato binario original.
Sintaxis:
xxd [opciones] [archivo]
Ejemplos Prácticos:
-
Crear un hexdump de un archivo:
xxd archivo.bin
-
Convertir un hexdump de nuevo a binario:
xxd -r archivo.hex archivo.bin
Conclusión
Estos comandos son herramientas fundamentales en la administración y manipulación de archivos y datos en sistemas Unix y Linux. Cada comando tiene un conjunto específico de funcionalidades y opciones que lo hacen adecuado para tareas particulares. La comprensión y el uso efectivo de estos comandos pueden mejorar significativamente la eficiencia y productividad al trabajar con sistemas Linux.
awk
: Un Potente Procesador de Texto
awk
es una herramienta de procesamiento de texto muy poderosa y versátil en Unix y Linux. Se utiliza para manipular, analizar y generar informes basados en archivos de texto. awk
funciona por medio de patrones y acciones, y puede realizar tareas complejas en archivos de texto con una sintaxis relativamente simple.
Sintaxis Básica
awk 'programa' archivo
programa
: Un conjunto de instruccionesawk
, usualmente en formato depatrón {acción}
.archivo
: El archivo de entrada queawk
procesará.
Componentes Principales
1. Patrón
Define cuándo se debe ejecutar una acción. Puede ser una expresión regular, una condición lógica, o una combinación de ambas.
2. Acción
Define qué hacer cuando se encuentra un patrón. Se coloca entre llaves {}
y puede contener varias declaraciones separadas por punto y coma.
Estructura de un Programa awk
Un programa awk
puede consistir en uno o más patrones y acciones. También puede tener secciones especiales para inicialización (BEGIN
) y finalización (END
).
BEGIN { declaraciones de inicialización }
patrón { acción }
patrón { acción }
END { declaraciones de finalización }
Parámetros y Opciones Comunes
-F
: Especificar el Separador de Campos
awk -F ':' '{print $1}' archivo.txt
- Descripción: Establece el separador de campos. En este ejemplo,
:
es el separador.
-v
: Definir Variables de Usuario
awk -v var=valor 'BEGIN {print var}'
- Descripción: Define variables antes de ejecutar el programa
awk
.
-f
: Especificar un Archivo de Programa
awk -f programa.awk archivo.txt
- Descripción: Lee el programa
awk
desde un archivo en lugar de la línea de comandos.
Campos y Registros
- Campos (
$1
,$2
, …$n
): Cada campo en una línea de entrada.$0
representa la línea completa. - Registros: Por defecto, una línea de entrada es un registro.
Ejemplos Prácticos
1. Imprimir el Primer Campo de Cada Línea
awk '{print $1}' archivo.txt
- Descripción: Imprime el primer campo de cada línea en
archivo.txt
.
2. Imprimir Líneas que Contienen un Patrón Específico
awk '/patrón/' archivo.txt
- Descripción: Imprime las líneas que contienen “patrón”.
3. Imprimir el Número de Líneas y Palabras
awk 'BEGIN {lineas=0; palabras=0}
{
lineas++;
palabras += NF;
}
END {print "Líneas:", lineas; print "Palabras:", palabras}' archivo.txt
- Descripción: Cuenta el número de líneas y palabras en
archivo.txt
.
4. Sumar los Valores de una Columna
awk '{suma += $2} END {print "Suma:", suma}' archivo.txt
- Descripción: Suma los valores del segundo campo y los imprime al final.
5. Filtrar y Modificar Contenido
awk '$2 > 50 {print $1, $2 * 2}' archivo.txt
- Descripción: Imprime el primer campo y el doble del segundo campo solo si el segundo campo es mayor que 50.
Funciones Incorporadas
awk
tiene muchas funciones incorporadas para manipular y procesar datos:
- Funciones de Texto:
length()
,substr()
,index()
,split()
. - Funciones Numéricas:
sqrt()
,sin()
,cos()
,rand()
,srand()
. - Funciones de Fecha y Hora:
strftime()
,systime()
.
Ejemplos de Funciones
1. length()
: Longitud de una Cadena
awk '{print $1, length($1)}' archivo.txt
- Descripción: Imprime cada palabra y su longitud.
2. substr()
: Subcadena
awk '{print substr($0, 2, 5)}' archivo.txt
- Descripción: Imprime una subcadena que empieza en la posición 2 y tiene una longitud de 5 caracteres.
3. split()
: Dividir Cadena en Partes
awk '{split($0, partes, ":"); print partes[1], partes[2]}' archivo.txt
- Descripción: Divide cada línea en partes usando
:
como delimitador e imprime las primeras dos partes.
Variables Internas de awk
awk
proporciona varias variables internas que son útiles para procesar datos:
FS
: Separador de campos (por defecto es espacio o tabulación).OFS
: Separador de campos de salida.RS
: Separador de registros (por defecto es nueva línea).ORS
: Separador de registros de salida.NR
: Número de registro (línea) actual.NF
: Número de campos en el registro actual.
Ejemplo con Variables Internas
awk 'BEGIN {FS=","; OFS=";"} {print $1, $2}' archivo.csv
- Descripción: Usa
,
como separador de campos de entrada y;
como separador de campos de salida.
Conclusión
awk
es una herramienta extremadamente poderosa para procesar y analizar datos en archivos de texto. Su capacidad para manejar patrones y acciones permite realizar tareas complejas con comandos relativamente simples. Al comprender los parámetros, las variables internas y las funciones incorporadas de awk
, puedes aprovechar al máximo su potencial para manipular y analizar datos de manera eficiente.