Ksh è sostenuto modelli estesi limitato dal ksh88, utilizzando la sintassi
special '(' pattern ')'
.
In ksh88, i prefissi 'speciali' di carattere cambiare il numero di partite atteso:
'*' for zero or more matches
'+' at least one match
'@' for exactly one match
'?' for zero or one matches
'!' for negation
In ksh93, questo è stato ampliato con
'{' min ',' max '}'
di esprimere una gamma precisa:
for w in 1423 12 "" abc 23423 9 33 3 333
do
[[ $w == {1,3}(\d) ]] && print $w has between 1 and three digits
[[ $w == {2}(\d) ]] && print $w has exactly two digits
done
E infine, è possibile avere un ingombro simile a perl con '~', che introduce un intero nuovo classe di estensioni, tra cui la completa espressioni regolari con:
'~ (E) (regex)'
Più esempi si possono trovare in Finnbarr P. Murphy's blog
fonte
2011-04-02 14:38:30
Durante l'utilizzo di egrep funziona, è un programma esterno e volontà rallenta molto lo script. – user1683793