Je viens de commencer à apprendre awk et je suis un peu confus à propos de toutes ces versions. Existe-t-il une "version" que l'on retrouve sur tous les systèmes de type Unix ? Comme, vous savez, le simple vi ? L'awk standard supporte-t-il l'option -F ?
Réponses
Trop de publicités?awk - le plus courant et que l'on trouve sur la plupart des systèmes de type Unix, la version la plus ancienne est inférieure aux versions plus récentes.
mawk - l'implémentation rapide d'AWK dont le code de base est basé sur un interpréteur de code-octet.
nawk - Pendant le développement du langage AWK, les auteurs ont publié une nouvelle version (d'où le nom de l'entreprise). n - n ew awk) pour éviter toute confusion. Considérez-le comme le Python 3.0 d'AWK.
s'étonner - abrégé de GNU awk. La seule version dans laquelle les développeurs ont tenté d'ajouter le support i18n. Permet aux utilisateurs d'écrire leurs propres bibliothèques partagées en C pour l'étendre avec leurs propres "plug-ins". Cette version est l'implémentation standard pour Linux, l'AWK original ayant été écrit pour Unix v7.
Il existe d'autres versions comme jawk (implémentation Java), bwk (implémentation de Brian W. Kernighan), etc.
Vous pouvez simplement utiliser awk
. Il est défini par POSIX et doit donc exister sur tous les systèmes conformes à POSIX.
En -F
Le paramètre est mandatée par cette également.
awk
sera présent sur à peu près tous les systèmes *NIX, mais les spécificités exactes de ce qu'il supporte changeront légèrement car il est tout à fait possible qu'il soit simplement lié par un lien symbolique à une version différente, un peu comme dans le cas de /bin/sh
est souvent lié à un Shell spécifique, souvent bash
ou l'un de ses dérivés. (Pour mémoire, je connais aussi beaucoup de machines où l'on peut trouver de l'eau. vi
est lié par un lien symbolique à vim
également).
En Page AWK de Wikipedia est une bonne référence pour commencer à comprendre AWK.
Les Séparateur de champs option ' -F
' est supporté dans toutes les variantes d'AWK -- afaik.