---
name: "grcat"
section: "1"
platform: "linux"
package: "grc"
version: "1.13-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/grcat"
---

# grcat(1)

read from standard input, colourise it and write to standard output

## NAME

grcat - read from standard input, colourise it and write to standard  output

## SYNOPSIS

**grcat** *configuration*

## DESCRIPTION

*configuration* is a name of a configuration file. Directories  ~/.grc/, /usr/local/share/grc/, /usr/share/grc/ are searched for the file (in this order).

If the file is not found, it is assumed to be an absolute path of a  configuration file located elsewhere.

Configuration file consists of entries, one per regexp, entries are  separated with lines with first character non-alphanumeric (except #). Lines beginning with # or empty lines are ignored.

Each entry consists of several lines. Each line has form: *keyword=value* where keyword is one of:  **regexp**, **colours**, **command**, **concat**, **skip**, **count**. Only **regexp** is mandatory, but it does not have much sense by itself unless you specify at least a **colour** or  **command** keyword as well.

*regexp* is the regular expression to match

*colours* is the list of colours, separated by commas (you can specify only  one colour), each colour per one regexp group specified in regexp.

*command* is command to be executed when regexp matches. Its output will be mixed with normal stdout, use redirectors ( \>/dev/null) if you want to supress it.

*replace* means the regular expression match will be replaced by the value, all the preceeding regular expressions will be evaluated against the original text, all the following regular expressions will be evaluated against the replaced text

*skip* can be either  **yes**, or **no**, if yes, the matched line will be skipped and not displayed in output. Default is no.

*count* is one of words:  **once**, **more**, or  **stop**.

**once** means that if the regexp is matched, its first occurrence is coloured and the program will continue with other regexp's.

**more** means that if there are multiple matches of the regexp in one line, all of them will be coloured.

**stop** means that the regexp will be coloured and program will move to the next line (i.e. ignoring other regexp's)

Regular expressions are evaluated from top to bottom, this allows nested and overlapped expressions. (e.g. you colour everything inside parentheses with one  colour, and if a following expression matches the text inside parentheses, it will be also coloured)

## OPTIONS

None so far.

## SEE ALSO

[**grc**(1)](/grc/1.md)

## AUTHOR

Written by Radovan Garabík \<garabik @ kassiopeia.juls.savba.sk\>
