msgfilter(1) on Solnix vs Linux and the BSDs
msgfilter is the GNU gettext tool that pipes every translation in a PO catalog through a filter program. It is not in the Solnix base system: install pkgs.solnix.gettext. The Solnix and Linux pages are the same program text, and the bundle has no BSD counterpart page.
The manual pages
- Solnix: msgfilter(1) from
pkgs.solnix.gettext - Linux: msgfilter(1) gettext-1.0
What Solnix runs
Not installed by default: add pkgs.solnix.gettext. The Solnix page is from GNU gettext-tools 0.22.5 (February 2024). The Linux counterpart is GNU gettext-tools 1.0 (January 2026). No other illumos variants are shipped.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | same program | Solnix and Linux both document GNU msgfilter with identical SYNOPSIS and the same option list. The only visible difference is the gettext version: 0.22.5 on Solnix, 1.0 on Linux. The bundle shows no option added or removed between them. Source: Solnix msgfilter(1) footer (GNU gettext-tools 0.22.5); Linux msgfilter(1) footer (GNU gettext-tools 1.0); both SYNOPSIS and OPTIONS |
| FreeBSD, OpenBSD, NetBSD | no BSD counterpart page | The bundle has no msgfilter page for FreeBSD, OpenBSD or NetBSD, so nothing is stated about whether these systems ship it. Treat it as a GNU gettext add-on there; the manual does not say more. Source: Bundle header (only a linux counterpart is listed) |
| Linux | not in base system | On a default Solnix system msgfilter is not on PATH. Scripts that assume it exists, as on Linux systems with gettext-tools installed, fail until pkgs.solnix.gettext is added. Source: Bundle header (none: install pkgs.solnix.gettext) |
| all four | -n means two things | -n is listed both as --quiet/--silent (sed filter option, suppress automatic printing) and as --add-location (preserve '#: filename:line' lines). Which is meant depends on position: before or after the FILTER. The page does not spell out the parsing rule.Source: Solnix msgfilter(1) 'Useful FILTER-OPTIONs when the FILTER is sed' -n; Output details -n, --add-location; same on Linux |
| all four | filter I/O and --newline | The filter reads one translation on standard input and writes the modified translation to standard output. With --newline, a newline is added to the input and one is removed from the output. This helps line-oriented filters such as sed.Source: Solnix msgfilter(1) DESCRIPTION, 'Filter input and output' --newline |
| all four | default input and output | Without -i or with -, the PO file is read from standard input. Without -o or with -, output goes to standard output. Because output is a PO file by default, -p or --stringtable-output is needed for other formats.Source: Solnix msgfilter(1) Input file location, Output file location, Output details |
Standards
- POSIX: msgfilter is not a POSIX.1-2024 utility.
- Solnix: The page names no standard. Full documentation is the Texinfo manual (info msgfilter).
Writing portable scripts
- Check that msgfilter is on PATH before use; on Solnix install pkgs.solnix.gettext first.
- Put
-e,-fand-nfor sed after the FILTER name, and use--no-locationinstead of a bare-nwhen you mean to suppress location lines, so the ambiguous-nis not misread.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.