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 질문에서 이를 어떻게 참조해야 합니까?
답변
BusyBox sed
는 실제로를 지원하지 않습니다 --version
. 주석에서 알 수 있듯이 출력은 사람이 아닌 configure 스크립트 를위한 것입니다. (어리석은 방식으로 인간에게는 혼란 스럽습니다!) Busybox 버전을 나타내는 BusyBox sed라고 설명합니다 (로 획득 busybox | head -n 1
).
일부 BusyBox 명령에는 선택적 기능이 있으며 컴파일 된 명령을 찾을 수있는 일반적인 방법은 없습니다 sed
.
BusyBox sed가 그것이 GNU sed가 아니라고보고하는 이유에 관해서, 요점은 사실 그것이 충분히 호환 가능하기 때문에 GNU sed로 전달하려고한다는 것입니다. 일부 구성 스크립트는 문자열을 찾고 GNU sed version nnn
BusyBox sed가 허용되는 방식입니다. 특히, GNU libc의 configure 스크립트는 “부러진 유리와 녹슨 못으로 가득 찬 바주카가있는 머리 속에 [shot]”이어야합니다 (© Rob Landley).
답변
BusyBox 용으로 작성된 sed의 사용자 정의 버전입니다. 예를 들어 BusyBox sed v-whatever와 같이 설치 한 BusyBox 버전으로 언급합니다.