Extension Sample Fnmatch (The GNU Awk User’s Guide)
From Get docs
Gawk/docs/latest/Extension-Sample-Fnmatch
Next: Extension Sample Fork, Previous: Extension Sample File Functions, Up: Extension Samples [Contents][Index]
17.7.2 Interface to fnmatch()
This extension provides an interface to the C library fnmatch() function. The usage is:
@load "fnmatch"This is how you load the extension.
result = fnmatch(pattern, string, flags)The return value is zero on success,
FNM_NOMATCHif the string did not match the pattern, or a different nonzero value if an error occurred.
In addition to the fnmatch() function, the fnmatch extension adds one constant (FNM_NOMATCH), and an array of flag values named FNM.
The arguments to fnmatch() are:
pattern- The file name wildcard to match
string- The file name string
flag- Either zero, or the bitwise OR of one or more of the flags in the
FNMarray
The flags are as follows:
| Array element | Corresponding flag defined by fnmatch()
|
|---|---|
FNM["CASEFOLD"]
|
FNM_CASEFOLD
|
FNM["FILE_NAME"]
|
FNM_FILE_NAME
|
FNM["LEADING_DIR"]
|
FNM_LEADING_DIR
|
FNM["NOESCAPE"]
|
FNM_NOESCAPE
|
FNM["PATHNAME"]
|
FNM_PATHNAME
|
FNM["PERIOD"]
|
FNM_PERIOD
|
Here is an example:
@load "fnmatch"
…
flags = or(FNM["PERIOD"], FNM["NOESCAPE"])
if (fnmatch("*.a", "foo.c", flags) == FNM_NOMATCH)
print "no match"