How can I check the version of sed in OS X?

后端 未结 2 825
野性不改
野性不改 2020-11-30 09:54

I know if sed is GNU version, version check can be done like

$ sed --version

But this doesn\'t work in OS X. How can I do that

相关标签:
2条回答
  • 2020-11-30 10:21

    Looking though the various version of sed in text_cmds there are not many changes.

    • 10.0.0 Used NetBSD sed from fall 1998
    • 10.3.0 Used FreeBSD sed from fall 2002 but left the man-page unchanged, adding -E extended regular expressions and -i in-place editing.
    • 10.4.0 Had some fixes for in-place editing, and changed the man-page to the FreeBSD man-page from fall 2004.
    • 10.5.0 Updated to FreeBSD sed from fall 2005, adding -l line-buffered output and more refinements/fixes to in-place editing.
    • 10.6.0 Added a reference to compat(5) in the man-page.

    The version of the operating-system can be checked, instead of the sed utility, by either using uname -r or 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
    

    (BSD utilities are not versioned because they are considered part of their operating-system)

    0 讨论(0)
  • 2020-11-30 10:36

    This probably isn't the answer you're looking for, but you can't. Mac OS X sed has no option to show the version number.

    There is not even a version number in the binary:

    $ 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
    
    0 讨论(0)
提交回复
热议问题