GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el más portátil de Sed, Awk, Perl y Sh?

¿Alguien puede poner estas herramientas en orden de portabilidad? ¿Cuál de estos es seguro que se encuentra incluso en los sistemas *nix más mínimos? ¿Alguno de ellos está 100% seguro de estar presente? Supongo que el orden es el siguiente:

  1. wow
  2. sed
  3. sh
  4. perla

Si bien me imagino que hay sistemas que no utilizan de manera predeterminada un Bourne Shell, algunos shell estará presente por defecto, siempre estará en /bin/sh ? Presumiblemente no si no es un caparazón tipo bourne. Ambos awk y sed tienen páginas que los explican sobre la especificación POSIX, por lo que presumiblemente siempre estarán presentes. ¿Es así?
¿Puedo estar seguro? que ambos se instalarán en cualquier *nix? ¿Incluyendo sistemas embebidos?

Respuesta aceptada:

¿Cuál es el más portátil de sed, awk, perl y sh?

sed , sh y awk son portátiles especificados por POSIX, perl no es como no estar respaldado por un estándar.

¿Alguien puede poner estas herramientas en orden de portabilidad?

Si se apega al código compatible, no debería haber un orden de portabilidad para los tres comandos POSIX.

¿Cuál de estos seguramente se encontrará incluso en los sistemas *nix más mínimos?

Los tres POSIX, junto con muchas otras utilidades, son obligatorios para que un sistema operativo sea POSIX. Sin embargo, existen sistemas operativos que carecen de algunos de ellos debido a la minimización, o que proporcionan implementaciones incompletas o no conformes.

En realidad, la mayoría (si no todos) los sistemas operativos similares a Unix gratuitos y de código abierto probablemente no pasarían el proceso de conformidad si lo intentaran, y nunca lo intentan de todos modos.

¿Alguno de ellos está 100% seguro de estar presente?

Me sorprendería encontrar un sistema operativo * nix como el que carece de un shell basado en la sintaxis de Bourne, pero todo es posible, especialmente con sistemas integrados.

Supongo que el orden es el siguiente:
Algún shell estará presente como predeterminado, ¿siempre estará en /bin/sh?

/bin/sh es probable que sea un shell de la familia de sintaxis Bourne, pero no se garantiza que sea compatible con POSIX, incluso en sistemas compatibles con POSIX. Por ejemplo, es /usr/xpg4/bin/sh en Solaris 10 y anteriores mientras /bin/sh es el shell Bourne original heredado que no es POSIX.

Relacionado:¿Cómo usar sed o ex para reemplazar un bloque (código de varias líneas) con un nuevo bloque de texto (código)?
Linux
  1. ¿El método más portátil para lanzar un emulador de terminal?

  2. Trabajar con columnas:¿Awk y Sed?

  3. ¿La forma portátil (posix) de lograr la sustitución de procesos?

  4. ¿Cuál es la diferencia entre Print y Printf en Awk?

  5. ¿Cuál es la diferencia entre los hilos NPTL y POSIX?

Cómo usar y aprovechar al máximo el comando fuser en Linux

La diferencia entre más, menos y la mayoría de los comandos

Cómo usar OpenSSL e Internet PKI en sistemas Linux

Cómo eliminar líneas vacías en archivos usando Grep, Sed y Awk

Los comandos FFmpeg más útiles para la conversión de audio y video

Los 15 mejores gestores de arranque de Linux para el hogar y sistemas integrados