Яка версія sed не GNU sed 4.0?


12

Я намагаюся розібратися, яку версію sedцього я отримав на BusyBox 1.18.3. --versionВихід зашифрований.

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

Наступний код - з відповідного 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;
}

Це заголовок:

/*
 * 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.
 */

Також є список "підтримуваних функцій та команд у цій версії sed". Це схоже на особливе sed, але як воно особливе? Це на замовлення для BusyBox, чи він походить з іншого джерела?

Як я повинен звертатися до цього sed, наприклад, у питаннях SE?

Відповіді:


8

BusyBox sedнасправді не підтримує --version. Як зазначає коментар, вихід призначений для налаштування сценаріїв , а не для людей. (Це бентежить людей досить нерозумно!) Охарактеризуйте це як BusyBox sed із зазначенням версії Busybox (отриманої з busybox | head -n 1).

Деякі команди BusyBox мають необов'язкові функції, і немає загального способу знайти, з яких було складено. sedНе має жодної.

Що стосується того, чому BusyBox sed повідомляє, що це не GNU sed, справа в тому, що він намагається пройти як GNU sed, тому що він досить сумісний. Деякі сценарії налаштування шукають рядок GNU sed version nnn, і таким чином BusyBox sed є прийнятним. Зокрема, сценарій налаштування GNU libc потрібно було «[вистрілити] в голову з базуком, повним розбитого скла та іржавими цвяхами» (© Rob Landley).


1

Це спеціальна версія sed, написана для BusyBox. Я б посилався на це версією BusyBox, яку ви встановили, .eg BusyBox sed v - як завгодно

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.