Você pode usar globbing estendido :
If the
extglob
shell option is enabled using theshopt
builtin, several extended pattern matching operators are recognized. In the following description, a pattern-list is a list of one or more patterns separated by a ‘|
’. Composite patterns may be formed using one or more of the following sub-patterns:?(pattern-list)
Matches zero or one occurrence of the given patterns.*(pattern-list)
Matches zero or more occurrences of the given patterns.+(pattern-list)
Matches one or more occurrences of the given patterns.@(pattern-list)
Matches one of the given patterns.!(pattern-list)
Matches anything except one of the given patterns.
Quanto ao que você perguntou, não consigo entender este:
... all the files that start with AT LEAST two lowercase letters ... "wildcard number of [[:lower:]]'s and then a wildcard?"
Um curinga corresponde a zero ou mais, o que não é o mesmo que dois ou mais. Qualquer número de [[:lower:]]
s pode ser correspondido com o glob% estendido*([[:lower:]])
. "Pelo menos dois" não precisa de globalização estendida: [[:lower:]][[:lower:]]*
.
... starting with ONLY 2 lowercase letters, not * lowercase letters
[[:lower:]][[:lower:]]?([^[:lower:]]*)
Que são dois caracteres minúsculos, opcionalmente seguidos por (qualquer coisa que não seja um caractere minúsculo e qualquer coisa).