---
name: "grepc"
section: "1"
platform: "linux"
package: "man-pages-utils"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/grepc"
---

# grepc(1)

find declarations, definitions, and uses in source code

## NAME

grepc - find declarations, definitions, and uses in source code

## SYNOPSIS

**grepc** \[*option* ...\] *pattern* \[*file* ...\]

## DESCRIPTION

[**grepc**(1)](/grepc/1.md) searches for declarations, definitions, and/or uses of *pattern* in each source *file*.

*pattern* is a PCRE pattern. It normally represents an identifier, and word boundaries are implicitly added to it in most cases.

If no *file* is given, this program reads standard input. Otherwise, it reads all files specified, and searches under any specified directories, recursively, without following symbolic links.

## OPTIONS

- **-A** *n*

  Print *n* lines of trailing context after a match.

- **-B** *n*

  Print *n* lines of leading context before a match.

- **-C** *n*

  Print *n* lines of context surrounding a match.

- **-c**

  Do not print matches, and instead print a count of them.

- **-h**

  Suppress the prefixing of file names on output.

- **-i**

  Ignore case distinctions in *pattern*.

- **-l**

  Suppress normal output; instead print the name of each input file from which output would normally have been printed. Each file is only printed once.

- **-m** *n*

  Stop processing after finding *n* matches.

- **-n**

  Prefix each line of output with the 1-based line number within its input file.

- **-t** *type*

  Restrict the search to a specific *type* of code. This option can be passed multiple times to search for various types of code. The acceptable values depend on the driver used for the language. See [**grepc\_c**(1)](/grepc_c/1.md), which is the default driver.

## CAVEATS

### Crashes

In some cases, internal calls to [**pcre2grep**(1)](/pcre2grep/1.md) may fail after consuming too much resources. To solve that, use **-t** to restrict the types of code of your search.

### Seekable files

Files specified in the command line must be seekable and able to be opened twice. If you need to read a non-seekable file, redirect it to the standard input.

## EXAMPLES

```
alx@devuan:/usr/lib/gcc$ grepc -n alignof .;
./x86_64-linux-gnu/15/include/stdalign.h:33:#define alignof _Alignof
```

## SEE ALSO

[**grepc\_c**(1)](/grepc_c/1.md), [**pcre2grep**(1)](/pcre2grep/1.md), [**pcre2syntax**(3)](/pcre2syntax/3.md), [**pcre2pattern**(3)](/pcre2pattern/3.md)
