Reference

strmatch(3)

match shell file patterns

NAME

strmatch - match shell file patterns

SYNOPSIS

$1$2int strmatch(char* s, char* p)int strmatch(char* s, char* p)int strmatch(char* s, char* p)int strmatch(char* s, char* p)int strmatch(char* s, char* p)int strmatch(char* s, char* p)int strmatch(char* s, char* p)int strmatch(char* s, char* p)
$1$2char* submatch(char* s, char* p, int m)char* submatch(char* s, char* p, int m)char* submatch(char* s, char* p, int m)char* submatch(char* s, char* p, int m)char* submatch(char* s, char* p, int m)char* submatch(char* s, char* p, int m)char* submatch(char* s, char* p, int m)char* submatch(char* s, char* p, int m)

DESCRIPTION

strmatch compares the string s with the shell pattern p and returns 1 for match and 0 otherwise. submatch does a leading substring match of the shell pattern p with the string s. If m is 0 then the match is minimal, otherwise a maximal match is done. A pointer to the first character after the matched substring is returned, 0 if there is no match.

Except for & and !, each shell pattern has an equivalent egrep(1) construct.

	sh pattern	egrep RE	description
	*		.*		0 or more chars
	?		.		any single char
	[.]		[.]		char class
	[!.]		[^.]		negated char class
	*(.)		(.)*		0 or more of
	+(.)		(.)+		1 or more of
	?(.)		(.)?		0 or 1 of
	(.)		(.)		1 of
	@(.)		(.)		1 of
	a|b		a|b		a or b
	a&b				a and b
	!(.)				none of

$1$2\\\\\\\\ is used to escape *, ?, (, |, &, ), [, and \ outside of [...].

SEE ALSO

grep(1)

BUGS

An unbalanced $1$2)))))))) terminates the top level pattern.
Nested $1$2&&&&&&&& and $1$2!!!!!!!! constructs are non-intuitive and are computationally intensive.