Versi sed yang bukan GNU sed 4.0?

12

Saya mencoba mencari tahu versi mana sedyang saya miliki di BusyBox 1.18.3. The --versionoutput samar.

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

Kode berikut ini dari yang relevan 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;
}

Ini tajuknya:

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

Ada juga daftar "fitur dan perintah yang didukung dalam versi sed ini". Itu terlihat seperti istimewa sed, tetapi bagaimana istimewanya? Apakah dibuat khusus untuk BusyBox, atau apakah itu berasal dari sumber lain?

Bagaimana saya harus merujuk ini sed, misalnya dalam pertanyaan SE?


sumber

Jawaban:

8

BusyBox sedtidak terlalu mendukung --version. Seperti komentar menunjukkan, output dimaksudkan untuk mengkonfigurasi skrip , bukan untuk manusia. (Ini membingungkan manusia dengan cara yang agak konyol!) Jelaskan sebagai BusyBox dan menunjukkan versi Busybox (diperoleh dengan busybox | head -n 1).

Beberapa perintah BusyBox memiliki fitur opsional, dan tidak ada cara umum untuk menemukan mana yang dikompilasi. sedTidak memiliki.

Adapun mengapa BusyBox melaporkan bahwa itu bukan GNU, intinya adalah fakta bahwa ia mencoba untuk lulus sebagai GNU karena cukup kompatibel. Beberapa mengkonfigurasi skrip mencari string GNU sed version nnn, dan dengan cara ini BusyBox dapat diterima. Secara khusus, skrip configure dari GNU libc perlu "ditembak di kepala dengan bazoka yang penuh dengan pecahan kaca dan kuku berkarat" (© Rob Landley).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
1

Ini adalah versi khusus dari sed yang ditulis untuk BusyBox. Saya akan merujuknya dengan versi BusyBox yang telah Anda instal, .eg BusyBox dan v-terserah

EightBitTony
sumber