examples - sed shell
¿Cómo puedo verificar la versión de sed en OS X? (2)
Sé que si sed es la versión de GNU, la verificación de la versión se puede hacer como
$ sed --version
Pero esto no funciona en OS X. ¿Cómo puedo hacer eso?
Mirando la variada versión de sed en text_cmds no hay muchos cambios.
-
10.0.0utilizado NetBSDseddesde el otoño de 1998 -
10.3.0Utilizó FreeBSDseddesde el otoño de 2002, pero no modificó la página de manual, agregando-Eexpresiones regulares extendidas y-iedición en contexto. -
10.4.0Tenía algunas correcciones para la edición in situ y cambió la página de manual a la página de manual de FreeBSD del otoño de 2004. -
10.5.0actualizó a FreeBSD sed desde el otoño de 2005, agregando-lsalida de buffer de línea y más refinamientos / arreglos para la edición in situ. -
10.6.0Agregó una referencia acompat(5)en la página man.
La versión del sistema operativo se puede verificar, en lugar de la utilidad sed , ya sea usando uname -r o sw_vers -productversion :
case $(sw_vers -productversion) in
10.[012].*) echo no in-place editig, EREs, or line-buffered output;;
10.[45].*) echo no line-buffered output;;
10.[6789].*) echo newest version as of writing;;
10.1[01].*) echo newest version as of writing;;
esac
(Las utilidades de BSD no están versionadas porque se consideran parte de su sistema operativo)
Probablemente esta no sea la respuesta que estás buscando, pero no puedes. Mac OS X sed no tiene opción para mostrar el número de versión.
Ni siquiera hay un número de versión en el binario:
$ strings $(which sed)
$FreeBSD: src/usr.bin/sed/compile.c,v 1.28 2005/08/04 10:05:11 dds Exp $
$FreeBSD: src/usr.bin/sed/main.c,v 1.36 2005/05/10 13:40:50 glebius Exp $
$FreeBSD: src/usr.bin/sed/misc.c,v 1.10 2004/08/09 15:29:41 dds Exp $
$FreeBSD: src/usr.bin/sed/process.c,v 1.39 2005/04/09 14:31:41 stefanf Exp $
@(#)PROGRAM:sed PROJECT:text_cmds-88
malloc
%lu: %s: unexpected EOF (pending }''s)
0123456789//$
%lu: %s: command expected
%lu: %s: invalid command code %c
%lu: %s: command %c expects up to %d address(es), found %d
%lu: %s: unexpected }
%lu: %s: extra characters at the end of %c command
%lu: %s: command %c expects / followed by text
%lu: %s: extra characters after / at the end of %c command
%lu: %s: filename expected
w command
read command
branch
label
%lu: %s: empty label
%lu: %s: substitute pattern can not be delimited by newline or backslash
%lu: %s: unterminated substitute pattern
%lu: %s: extra text at the end of a transform command
%lu: %s: unterminated regular expression
%lu: %s: expected context address
realloc
%lu: %s: whitespace after %s
%lu: %s: duplicate label ''%s''
%lu: %s: RE error: %s
%lu: %s: / can not be used as a string delimiter
%lu: %s: newline can not be used as a string delimiter
%lu: %s: unbalanced brackets ([])
bin/sed
Unix2003
123456789
%lu: %s: /%c not defined in the RE
%lu: %s: unescaped newline inside substitute pattern
%lu: %s: unterminated substitute in regular expression
%lu: %s: more than one number or ''g'' in substitute flags
%lu: %s: overflow in the ''N'' substitute flag
%lu: %s: no wfile specified
%lu: %s: bad flag in substitute command: ''%c''
%lu: %s: transform pattern can not be delimited by newline or backslash
%lu: %s: unterminated transform source string
%lu: %s: unterminated transform target string
%lu: %s: transform strings are not the same length
%lu: %s: undefined label ''%s''
%lu: %s: unused label ''%s''
Eae:f:i:ln
setlinebuf() failed
stdout
"%s"
..."
-i may not be used with stdin
stdin
rename()
%s: %s %s
in-place editing only
works for regular files
%s: name too long
%s/.!%ld!%s
%s: %s
usage: sed script [-Ealn] [-i extension] [file ...]
sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]
first RE may not be empty
RE error: %s
%lu: %s: /%d not defined in the RE
COLUMNS
/abfrtv
/%03o