manpagez: man pages & more
info gawk
Home | html | info | man

File: gawk.info,  Node: Extension Sample Fnmatch,  Next: Extension Sample Fork,  Prev: Extension Sample File Functions,  Up: Extension Samples

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_NOMATCH' if 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
     'FNM' array

   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"

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.