---
name: "csearch"
section: "1"
platform: "linux"
package: "codesearch"
version: "1.2.0-1+b8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/csearch"
---

# csearch(1)

like grep(1) over all indexed files

## NAME

csearch - like [grep(1)](/grep/1.md) over all indexed files

## SYNOPSIS

**csearch** \[-c\] \[-f *fileregexp*\] \[-h\] \[-i\] \[-l\] \[-n\] *regexp*

## DESCRIPTION

Csearch behaves like grep over all indexed files, searching for regexp, an RE2 (nearly PCRE) regular expression.

The -c, -h, -i, -l, and -n flags are as in grep, although note that as per Go's flag parsing convention, they cannot be combined: the option pair -i -n cannot be abbreviated to -in.

The -f flag restricts the search to files whose names match the RE2 regular expression fileregexp.

Csearch relies on the existence of an up-to-date index created ahead of time.  To build or rebuild the index that csearch uses, run:

	cindex path...

where path... is a list of directories or individual files to be included in the index. If no index exists, this command creates one. If an index already exists, cindex overwrites it. See [**cindex**(1)](/cindex/1.md) for more details.

## OPTIONS

- **-c**

  Suppress normal output; instead print a count of matching lines for each input file.

- **-f fileregexp**

  Restricts the search to files whose names match the RE2 regular expression *fileregexp*.

- **-h**

  Suppress the prefixing of file names on output.

- **-i**

  Ignore case distinctions in both the *regexp* and the input files.

- **-l**

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

- **-n**

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

## ENVIRONMENT

Csearch uses the index stored in $CSEARCHINDEX or, if that variable is unset or empty, $HOME/.csearchindex.

## SEE ALSO

[**cindex**(1)](/cindex/1.md), [**cgrep**(1)](/cgrep/1.md), [**grep**(1)](/grep/1.md).

## AUTHOR

This manual page was written by Michael Stapelberg \<stapelberg@debian.org\>, for the Debian project (and may be used by others).
