# MSGGREP

NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSO

## NAME

msggrep - pattern matching on message catalog

## SYNOPSIS

msggrep [OPTION] [INPUTFILE]

## DESCRIPTION

Extracts all messages of a translation catalog that match a given pattern or belong to some given source files.

Mandatory arguments to long options are mandatory for short options too.

Input file location:
INPUTFILE

input PO file

-D, --directory=DIRECTORY

add DIRECTORY to list for input files search

If no input file is given or if it is -, standard input is read.

Output file location:
-o, --output-file=FILE

write output to specified file

The results are written to standard output if no output file is specified or if it is -.

Message selection:

[-N SOURCEFILE]... [-M DOMAINNAME]... [-J MSGCTXT-PATTERN] [-K MSGID-PATTERN] [-T MSGSTR-PATTERN] [-C COMMENT-PATTERN] [-X EXTRACTED-COMMENT-PATTERN] [-W WORKFLOW-FLAG] [-S STICKY-FLAG]

A message is selected if it comes from one of the specified source files, or if it comes from one of the specified domains, or if -J is given and its context (msgctxt) matches MSGCTXT-PATTERN, or if -K is given and its key (msgid or msgid_plural) matches MSGID-PATTERN, or if -T is given and its translation (msgstr) matches MSGSTR-PATTERN, or if -C is given and the translator’s comment matches COMMENT-PATTERN, or if -X is given and the extracted comment matches EXTRACTED-COMMENT-PATTERN, or if -W is given and its flags contain WORKFLOW-FLAG, or if -S is given and its flags contain STICKY-FLAG.

When more than one selection criterion is specified, the set of selected messages is the union of the selected messages of each criterion.

MSGCTXT-PATTERN or MSGID-PATTERN or MSGSTR-PATTERN or COMMENT-PATTERN or EXTRACTED-COMMENT-PATTERN syntax:

[-E | -F] [-e PATTERN | -f FILE]...

PATTERNs are basic regular expressions by default, or extended regular expressions if -E is given, or fixed strings if -F is given.
-N, --location=SOURCEFILE

select messages extracted from SOURCEFILE

-M, --domain=DOMAINNAME

select messages belonging to domain DOMAINNAME

-J, --msgctxt

start of patterns for the msgctxt

-K, --msgid

start of patterns for the msgid

-T, --msgstr

start of patterns for the msgstr

-C, --comment

start of patterns for the translator’s comment

-X, --extracted-comment

start of patterns for the extracted comment

-E, --extended-regexp

PATTERN is an extended regular expression

-F, --fixed-strings

PATTERN is a set of newline-separated strings

-e, --regexp=PATTERN

use PATTERN as a regular expression

-f, --file=FILE

obtain PATTERN from FILE

-i, --ignore-case

ignore case distinctions

-W, --workflow-flag=FLAG

select messages with FLAG

-S, --sticky-flag=FLAG

select messages with FLAG

-v, --invert-match

output only the messages that do not match any selection criterion

Input file syntax:
-P, --properties-input

input file is in Java .properties syntax

--stringtable-input

input file is in NeXTstep/GNUstep .strings syntax

Output details:
--color

use colors and other text attributes always

--color=WHEN

use colors and other text attributes if WHEN. WHEN may be ’always’, ’never’, ’auto’, or ’html’.

--style=STYLEFILE

specify CSS style rule file for --color

--no-escape

do not use C escapes in output (default)

--escape

use C escapes in output, no extended chars

--force-po

write PO file even if empty

--indent

indented output style

--no-location

suppress ’#: filename:line’ lines

-n, --add-location

preserve ’#: filename:line’ lines (default)

--strict

strict Uniforum output style

-p, --properties-output

write out a Java .properties file

--stringtable-output

write out a NeXTstep/GNUstep .strings file

-w, --width=NUMBER

set output page width

--no-wrap

do not break long message lines, longer than the output page width, into several lines

--sort-output

generate sorted output

--sort-by-file

sort output by file location

Informative output:
-h, --help

display this help and exit

-V, --version

output version information and exit

## AUTHOR

Written by Bruno Haible.

## REPORTING BUGS

Report bugs in the bug tracker at <https://savannah.gnu.org/projects/gettext> or by email to <bug-gettext@gnu.org>.

## COPYRIGHT

Copyright © 2001-2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

## SEE ALSO

The full documentation for msggrep is maintained as a Texinfo manual. If the info and msggrep programs are properly installed at your site, the command

info msggrep

should give you access to the complete manual.