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 <[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 nnn
BusyBox sed가 허용할 수 있는 문자열을 찾습니다 . 구체적으로,GNU libc용 구성 스크립트"깨진 유리와 녹슨 못을 채운 바주카포로 머리에 사격을 가해야 합니다"(© Rob Landley).
답변2
BusyBox용으로 작성된 sed의 사용자 정의 버전입니다. 나는 당신이 설치한 BusyBox 버전으로 이를 참조할 것입니다(예: BusyBox sed v-whatever).