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 <markw@codepoet.org>
 * Copyright (C) 2002  Matt Kraai
 * Copyright (C) 2003 by Glenn McGrath
 * Copyright (C) 2003,2004 by Rob Landley <rob@landley.net>
 *
 * MAINTAINER: Rob Landley <rob@landley.net>
 *
 * 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?

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).


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.