La risposta suggerita per osservare l'output di less --version
non ha affrontato la mia situazione su Solaris 10 - le prime due righe leggono:
less 436
Copyright (C) 1984-2009 Mark Nudelman
non riesco a vedere una libreria regex evidente nella lista delle dipendenze dinamiche :
$ ldd /usr/bin/less
libcurses.so.1 => /lib/libcurses.so.1
libc.so.1 => /lib/libc.so.1
libm.so.2 => /lib/libm.so.2
/lib/libm/libm_hwcap1.so.2
/platform/sun4v/lib/libc_psr.so.1
man libc
indica che più interfacce regex sono offerti dalla biblioteca: regcmp
, re_comp
e regcomp
.
Eseguendo elfdump
contro il binario, posso vedere i riferimenti al simbolo regcomp
:
$ elfdump /usr/bin/less | egrep -i 'posix|pcre|regcmp|re_comp|regcomp|regcomp-local'
[452] 0x0003d6a0 0x00000000 FUNC GLOB D 0 UNDEF regcomp
[452] regcomp
R_SPARC_JMP_SLOT 0x3d6a0 0 .rela.plt regcomp
Se si tratta di un collegamento alla funzione di compilazione regcomp
regex, quindi il file README-text nella risposta da @ hek2mgl suggerisce che questo binario less
possa usare regex POSIX (o regex di Spencer V8, se compilato nel binario?).
La pagina man per regcomp(3C)
legge:
DESCRIPTION
These functions interpret basic and extended regular expres-
sions (described on the regex(5) manual page).
Sperimentare con le ricerche in less
, ho scoperto che l'operatore di ripetizione regex {...}
funziona senza backslash. La manpage per regex(5)
sul mio sistema lo definisce come sintassi ERE (Extended Regular Expression).
Infine, ho trovato interessante severaldescriptions delle interfacce dei vari motori di regex, riassunti qui di seguito:
Engine Interface
---------------- --------------------------------
GNU re_compile_pattern() and regex.h
PCRE pcre_compile and pcre.h/pcre2_compile and pcre2.h
POSIX regcomp() and regex.h
Henry Spencer V8 regcomp() and regexp.h
BSD re_comp()
System V regcmp()
Non è una risposta completa, ma mi piacerebbe iniziare qui: http: //en.wikipedia. org/wiki/Comparison_of_regular_expression_engines – Jaxidian
Grazie. Qualche consiglio su come mappare le biblioteche nella risposta di @ hek2mgl a questo? –