我知道如果sed是GNU版本,版本检查就可以了
$sed --version
但这在OS X中不起作用.我该怎么做?
这可能不是您正在寻找的答案,但您不能. Mac OS X sed无法显示版本号.
二进制文件中甚至没有版本号:
$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