Header Ads Widget

[MAN] fnmatch

Content-type: text/html; charset=UTF-8 Man page of FNMATCH

FNMATCH

Section: GNU Awk Extension Modules (3am)
Updated: Jan 15 2013
Index Return to Main Contents
 

NAME

fnmatch - compare a string against a filename wildcard  

SYNOPSIS

@load "fnmatch"

result = fnmatch(pattern, string, flags)  

DESCRIPTION

The fnmatch extension provides an AWK interface to the fnmatch(3) routine. It adds a single function named fnmatch(), one predefined variable (FNM_NOMATCH), and an array of flag values named FNM.

The first argument is the filename wildcard to match, the second is the filename string, and the third is either zero, or the bitwise OR of one or more of the flags in the FNM array.

The return value is zero on success, FNM_NOMATCH if the string did not match the pattern, or a different non-zero value if an error occurred.

The flags are follows:

FNM["CASEFOLD"]
Corresponds to the FNM_CASEFOLD flag as defined in fnmatch(3).
FNM["FILE_NAME"]
Corresponds to the FNM_FILE_NAME flag as defined in fnmatch(3).
FNM["LEADING_DIR"]
Corresponds to the FNM_LEADING_DIR flag as defined in fnmatch(3).
FNM["NOESCAPE"]
Corresponds to the FNM_NOESCAPE flag as defined in fnmatch(3).
FNM["PATHNAME"]
Corresponds to the FNM_PATHNAME flag as defined in fnmatch(3).
FNM["PERIOD"]
Corresponds to the FNM_PERIOD flag as defined in fnmatch(3).

 

NOTES

Nothing prevents AWK code from changing the predefined variabale FNM_NOMATCH, but doing so may cause strange results.  

EXAMPLE

@load "fnmatch"
...
flags = or(FNM["PERIOD"], FNM["NOESCAPE"])
if (fnmatch("*.a", "foo.c", flags) == FNM_NOMATCH)
        print "no match"
 

SEE ALSO

GAWK: Effective AWK Programming, filefuncs(3am), fork(3am), inplace(3am), ordchr(3am), readdir(3am), readfile(3am), revoutput(3am), rwarray(3am), time(3am).

fnmatch(3).  

AUTHOR

Arnold Robbins, arnold@skeeve.com.  

COPYING PERMISSIONS

Copyright © 2012, 2013, Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual page under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual page into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation.


 

Index

NAME
SYNOPSIS
DESCRIPTION
NOTES
EXAMPLE
SEE ALSO
AUTHOR
COPYING PERMISSIONS

This document was created by man2html, using the manual pages.
Time: 04:45:40 GMT, September 16, 2022 Content-type: text/html; charset=UTF-8 Man page of FNMATCH

FNMATCH

Section: Linux Programmer's Manual (3)
Updated: 2015-12-28
Index Return to Main Contents
 

NAME

fnmatch - match filename or pathname  

SYNOPSIS

#include <fnmatch.h>

int fnmatch(const char *pattern, const char *string, int flags);
 

DESCRIPTION

The fnmatch() function checks whether the string argument matches the pattern argument, which is a shell wildcard pattern.

The flags argument modifies the behavior; it is the bitwise OR of zero or more of the following flags:

FNM_NOESCAPE
If this flag is set, treat backslash as an ordinary character, instead of an escape character.
FNM_PATHNAME
If this flag is set, match a slash in string only with a slash in pattern and not by an asterisk (*) or a question mark (?) metacharacter, nor by a bracket expression ([]) containing a slash.
FNM_PERIOD
If this flag is set, a leading period in string has to be matched exactly by a period in pattern. A period is considered to be leading if it is the first character in string, or if both FNM_PATHNAME is set and the period immediately follows a slash.
FNM_FILE_NAME
This is a GNU synonym for FNM_PATHNAME.
FNM_LEADING_DIR
If this flag (a GNU extension) is set, the pattern is considered to be matched if it matches an initial segment of string which is followed by a slash. This flag is mainly for the internal use of glibc and is implemented only in certain cases.
FNM_CASEFOLD
If this flag (a GNU extension) is set, the pattern is matched case-insensitively.
FNM_EXTMATCH
If this flag (a GNU extension) is set, extended patterns are supported, as introduced by 'ksh' and now supported by other shells. The extended format is as follows, with pattern-list being a '|' separated list of patterns.
'?(pattern-list)'
The pattern matches if zero or one occurrences of any of the patterns in the pattern-list match the input string.
'*(pattern-list)'
The pattern matches if zero or more occurrences of any of the patterns in the pattern-list match the input string.
'+(pattern-list)'
The pattern matches if one or more occurrences of any of the patterns in the pattern-list match the input string.
'@(pattern-list)'
The pattern matches if exactly one occurrence of any of the patterns in the pattern-list match the input string.
'!(pattern-list)'
The pattern matches if the input string cannot be matched with any of the patterns in the pattern-list.
 

RETURN VALUE

Zero if string matches pattern, FNM_NOMATCH if there is no match or another nonzero value if there is an error.  

ATTRIBUTES

For an explanation of the terms used in this section, see attributes(7).
InterfaceAttributeValue
fnmatch() Thread safetyMT-Safe env locale
 

CONFORMING TO

POSIX.1-2001, POSIX.1-2008, POSIX.2. The FNM_FILE_NAME, FNM_LEADING_DIR, and FNM_CASEFOLD flags are GNU extensions.  

SEE ALSO

sh(1), glob(3), scandir(3), wordexp(3), glob(7)  

COLOPHON

This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ATTRIBUTES
CONFORMING TO
SEE ALSO
COLOPHON

This document was created by man2html, using the manual pages.
Time: 04:45:48 GMT, September 16, 2022

댓글 쓰기

0 댓글