NAME
glob - optex filter to glob filenames
SYNOPSIS
optex -Mglob [ option ] pattern -- command
DESCRIPTION
This module is used to select filenames given as arguments by pattern.
For example, the following will pass only files matching *.c
from */*
as arguments to ls
.
optex -Mglob '*.c' -- ls -l */*
Only existing file names will be selected. Any arguments that do not correspond to files will be passed through as is. In this example, the command name and options remain as they are because no corresponding file exists. Be aware that the existence of a corresponding file could lead to confusing results.
There are several unique options that are valid only for this module.
- --exclude pattern
-
Option
--exclude
will mean the opposite.optex -Mglob --exclude '*.c' -- ls */*
If the
--exclude
option is used with positive patterns, the exclude pattern takes precedence. The following command selects files matching*.c
, but excludes those begin with a capital letter.optex -Mglob --exclude '[A-Z]*' '*.c' -- ls */*
This opiton can be used multiple times.
- --regex
-
If the
--regex
option is given, patterns are evaluated as a regular expression instead of a glob pattern.optex -Mglob --regex '\.c$' -- ls */*
- --path
-
With the
--path
option it matches against the entire path, not just the filename.optex -Mglob --path '^*_test/' -- ls */*
CONSIDERATION
You should also consider using the extended globbing (extglob) feature of bash(1) or similar. For example, you can use !(*.EN).md
, which would specify files matching *.md minus those matching *.EN.md
.
AUTHOR
Kazumasa Utashiro
LICENSE
Copyright ©︎ 2024 Kazumasa Utashiro.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.