Quelle version sed n'est pas GNU sed 4.0?

12

J'essaie de comprendre quelle version de sedcela j'ai sur BusyBox 1.18.3. La --versionsortie est cryptique.

$ sed --version
This is not GNU sed version 4.0

Le code suivant est issu du code pertinent sed.c.

    /* Lie to autoconf when it starts asking stupid questions. */
if (argv[1] && !strcmp(argv[1], "--version")) {
    puts("This is not GNU sed version 4.0");
    return 0;
}

Voici l'en-tête:

/*
 * sed.c - very minimalist version of sed
 *
 * Copyright (C) 1999,2000,2001 by Lineo, inc. and Mark Whitley
 * Copyright (C) 1999,2000,2001 by Mark Whitley <[email protected]>
 * Copyright (C) 2002  Matt Kraai
 * Copyright (C) 2003 by Glenn McGrath
 * Copyright (C) 2003,2004 by Rob Landley <[email protected]>
 *
 * MAINTAINER: Rob Landley <[email protected]>
 *
 * Licensed under GPLv2, see file LICENSE in this source tree.
 */

Il existe également une liste des "fonctionnalités et commandes prises en charge dans cette version de sed". Cela ressemble à un spécial sed, mais en quoi est-il spécial? Est-il fait sur mesure pour BusyBox ou provient-il d'une autre source?

Comment dois-je y faire référence sed, par exemple dans les questions SE?


la source

Réponses:

8

BusyBox sedne prend pas vraiment en charge --version. Comme le commentaire l'indique, la sortie est destinée aux scripts de configuration , pas aux humains. (C'est déroutant pour les humains d'une manière plutôt idiote!) Décrivez-le comme BusyBox sed indiquant la version Busybox (obtenue avec busybox | head -n 1).

Certaines commandes BusyBox ont des fonctionnalités optionnelles, et il n'y a aucun moyen générique de trouver celles qui ont été compilées. sedN'en a pas.

Quant à savoir pourquoi BusyBox sed rapporte qu'il ne s'agit pas de GNU sed, le fait est qu'il essaie de se faire passer pour GNU sed car il est suffisamment compatible. Certains scripts de configuration recherchent la chaîne GNU sed version nnn, et de cette façon BusyBox sed est acceptable. Plus précisément, le script de configuration de GNU libc devait être «[tiré] dans la tête avec un bazooka plein de verre cassé et de clous rouillés» (© Rob Landley).

Gilles 'SO- arrête d'être méchant'
la source
1

Il s'agit d'une version personnalisée de sed écrite pour BusyBox. Je voudrais y faire référence par la version BusyBox que vous avez installée, .eg BusyBox sed v-que ce soit

EightBitTony
la source