{
    "mode": "man",
    "parameter": "fnmatch",
    "section": "3",
    "url": "https://www.chedong.com/phpMan.php/man/fnmatch/3/json",
    "generated": "2026-05-30T06:06:54Z",
    "synopsis": "@load \"fnmatch\"\nresult = fnmatch(pattern, string, flags)",
    "sections": {
        "NAME": {
            "content": "fnmatch - compare a string against a filename wildcard\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "@load \"fnmatch\"\n\nresult = fnmatch(pattern, string, flags)\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The  fnmatch extension provides an AWK interface to the fnmatch(3) routine.  It adds a single\nfunction named fnmatch(), one predefined variable (FNMNOMATCH), and an array of flag  values\nnamed FNM.\n\nThe  first argument is the filename wildcard to match, the second is the filename string, and\nthe third is either zero, or the bitwise OR of one or more of the flags in the FNM array.\n\nThe return value is zero on success, FNMNOMATCH if the string did not match the pattern,  or\na different non-zero value if an error occurred.\n\nThe flags are follows:\n",
            "subsections": [
                {
                    "name": "FNM[\"CASEFOLD\"]",
                    "content": "Corresponds to the FNMCASEFOLD flag as defined in fnmatch(3).\n\nFNM[\"FILENAME\"]\nCorresponds to the FNMFILENAME flag as defined in fnmatch(3).\n\nFNM[\"LEADINGDIR\"]\nCorresponds to the FNMLEADINGDIR flag as defined in fnmatch(3).\n"
                },
                {
                    "name": "FNM[\"NOESCAPE\"]",
                    "content": "Corresponds to the FNMNOESCAPE flag as defined in fnmatch(3).\n"
                },
                {
                    "name": "FNM[\"PATHNAME\"]",
                    "content": "Corresponds to the FNMPATHNAME flag as defined in fnmatch(3).\n"
                },
                {
                    "name": "FNM[\"PERIOD\"]",
                    "content": "Corresponds to the FNMPERIOD flag as defined in fnmatch(3).\n"
                }
            ]
        },
        "NOTES": {
            "content": "Nothing prevents AWK code from changing the predefined variable FNMNOMATCH, but doing so may\ncause strange results.\n",
            "subsections": []
        },
        "EXAMPLE": {
            "content": "@load \"fnmatch\"\n...\nflags = or(FNM[\"PERIOD\"], FNM[\"NOESCAPE\"])\nif (fnmatch(\"*.a\", \"foo.c\", flags) == FNMNOMATCH)\nprint \"no match\"\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "GAWK: Effective AWK Programming, filefuncs(3am), fork(3am), inplace(3am), ordchr(3am),  read‐\ndir(3am), readfile(3am), revoutput(3am), rwarray(3am), time(3am).\n\nfnmatch(3).\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Arnold Robbins, arnold@skeeve.com.\n",
            "subsections": []
        },
        "COPYING PERMISSIONS": {
            "content": "Copyright © 2012, 2013, 2018, Free Software Foundation, Inc.\n\nPermission is granted to make and distribute verbatim copies of this manual page provided the\ncopyright notice and this permission notice are preserved on all copies.\n\nPermission is granted to copy and distribute modified versions of this manual page under  the\nconditions  for verbatim copying, provided that the entire resulting derived work is distrib‐\nuted under the terms of a permission notice identical to this one.\n\nPermission is granted to copy and distribute translations of this manual  page  into  another\nlanguage,  under  the above conditions for modified versions, except that this permission no‐\ntice may be stated in a translation approved by the Foundation.\n\n\n\nFree Software Foundation                     Feb 21 2018                                FNMATCH(3am)",
            "subsections": []
        }
    },
    "summary": "fnmatch - compare a string against a filename wildcard",
    "flags": [],
    "examples": [
        "@load \"fnmatch\"",
        "...",
        "flags = or(FNM[\"PERIOD\"], FNM[\"NOESCAPE\"])",
        "if (fnmatch(\"*.a\", \"foo.c\", flags) == FNMNOMATCH)",
        "print \"no match\""
    ],
    "see_also": [
        {
            "name": "filefuncs",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/filefuncs/3am/json"
        },
        {
            "name": "fork",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/fork/3am/json"
        },
        {
            "name": "inplace",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/inplace/3am/json"
        },
        {
            "name": "ordchr",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/ordchr/3am/json"
        },
        {
            "name": "dir",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/dir/3am/json"
        },
        {
            "name": "readfile",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/readfile/3am/json"
        },
        {
            "name": "revoutput",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/revoutput/3am/json"
        },
        {
            "name": "rwarray",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/rwarray/3am/json"
        },
        {
            "name": "time",
            "section": "3am",
            "url": "https://www.chedong.com/phpMan.php/man/time/3am/json"
        }
    ]
}