Existe uma maneira simples de usar o comando ls
:
ls /usr/include/[aeiou]*\.h
Mas você também pode usar o comando find
com regex:
find /usr/include -type f -regextype "posix-extended" -iregex '^\.\/(a|e|i|o|u).*\.h$'
-regex pattern
File name matches regular expression pattern. This is a match on the whole path, not a search. For
example, to match a file named './fubar3', you can use the regular expression '\.\/fub.*' or '.*b.*3' or '.*bar.',
but not 'f.*r3'. The regular expressions understood by find are by default Emacs Regular Expres‐
sions, but this can be changed with the -regextype option.
-iregex pattern
Like -regex, but the match is case insensitive.
-regextype type
Changes the regular expression syntax understood by -regex and -iregex tests which occur later on the
command line. Currently-implemented types are emacs (this is the default), posix-awk, posix-basic,
posix-egrep and posix-extended.
^\.\/(a|e|i|o|u).*\.h$
Explicação:
-
^
é âncora para o início do nome do arquivo (ou melhor iniciar o caminho do arquivo) -
\.\/
corresponde apenas a./
(um único ponto seguido por uma barra) -
(a|e|i|o|u)
é o grupo de correspondência. corresponderá a um dosa
ou (|
)e
,i
,o
ouu
do início do nome do arquivo após o primeiro./
-
.*
corresponde a qualquer caractere após palavras de vogais -
\.
corresponde a um único caractere de ponto e -
h$
corresponde ao caractereh
no final do nome do arquivo (O$
é a âncora para o final do nome do arquivo)