9.5.- Otros comandos

El comando xargs, colocado detrás de una  tubería recupera las cadenas pasadas por argumentos de la entrada estándar y ejecuta comando2 pasándole estas cadenas como argumento.

Veamos en los siguientes ejemplos como el comando time se usará para medir el tiempo de ejecución de un comando.

El resultado se interpreta de la siguiente manera:

  • user .- Es el tiempo de ejecución de código de usuario.
  • sys .- El tiempo de ejecución del código del núcleo.
  • real .- La duración total de la ejecución (user + sys + inactividad).

Búsqueda de todos los archivos *.txt. Todos los nombres de archivos emitidos por el comando find se pasan como argumento al comando grep, quien se ejecuta una sola vez:

Si el comando  no soporta un gran número de argumentos, es posible especificar el número máximo de argumentos. En este caso grep es invocado tantas veces como sea necesario, con 6 argumentos en cada llamada.

Podemos registrar la ejecución del comando con la opción -t:

El comando cmp compara dos archivos de texto o binarios y devuelve un estado verdadero si son iguales y falso en caso contrario. Si los archivos son diferentes, se muestra la posición de la primera diferencia.

Comparar dos archivos diferentes:

Comparar dos archivos iguales:

Con el script igual.sh le añadiremos dos argumentos que son los nombres de archivos para compararlos. La opción -s de cmp hace trabajar al comando en modo silencioso.

Acordaros de dar permiso de ejecución a este script:

Llamada con dos archivos diferentes:

Llamada con dos archivos iguales:

El comando comm da a conocer las líneas comunes entre dos archivos. Dichos archivos deben estar ordenados previamente.

Para el ejemplo crearemos dos archivos llamados f1 y f2 respectivamente; para ello usaremos el método más rápido con el comando cat.

Cuando finalices cada archivo terminarlo pulsando la combinación de teclas “CTRL-d“.

Verificamos si hemos creado los dos archivos:

Una vez que observamos que los archivos se han creado satisfactoriamente, pasamos a la comparación.

El comando comm muestra tres columnas:

  • La primera representa las líneas específicas de f1.
  • La segunda muestra las líneas específicas de f2.
  • La tercera las líneas en común entre f1 y f2.

Lo mismo sin mostrar las líneas específicas de f1:

No mostrar las líneas específicas de f2:

No mostrar las líneas comunes:

Bueno ya solo queda que pongas interés e inventiva en la resolución de problemas de programación con script.