GNU sed 4.0以外のsedバージョンは何ですか?

GNU sed 4.0以外のsedバージョンは何ですか?

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

「このバージョンのsedでサポートされている機能とコマンド」のリストもあります。特別に見えますが、sed何がそんなに特別なのでしょうか? BusyBox用にカスタマイズされたのですか、それとも別のソースから来たのですか?

sedたとえば、SE質問でこれをどのように参照するのですか?

ベストアンサー1

BusyBoxはsed実際にはそれをサポートしていません--version。注釈が示すように、出力の目的は次のとおりです。構成スクリプト、人間には適していません。 (やや愚かな方法で人間を混乱させます!)BusyBox sedディレクティブで説明してください。ビジボックスバージョン(獲得を通じてbusybox | head -n 1)。

一部のBusyBoxコマンドにはオプションの機能があり、どのコマンドがコンパイルされたかを判断する一般的な方法はありません。sed何の機能もありません。

BusyBox sedがGNU sedではないと報告する理由は、互換性が十分であるため、実際にGNU sedを偽装しようとしていることです。一部の設定スクリプトは、GNU sed version nnnBusyBox sedが許可できる文字列を探します。具体的には、GNU libcの設定スクリプト「壊れたガラスとさびた釘を詰めたバズーカポで頭に射撃を加える必要があります」(©Rob Landley)。

おすすめ記事