.\" Copyright (c) 2023–2024 DTB .\" Copyright (c) 2023–2024 Emma Tebibyte .\" .\" This work is licensed under CC BY-SA 4.0. To see a copy of this license, .\" visit . .TH npc 1 .SH NAME npc \(en show non-printing characters .SH SYNOPSIS npc .RB ( -et ) .SH DESCRIPTION Print normally non-printing characters. The program reads from standard input and writes to standard output, replacing non-printing characters with printable equivalents. Control characters print as a carat ('^') followed by the character '@' through '_' corresponding to the character replaced (e.g. control-X becomes '^X'). The delete character (0x7F) becomes '^?'. Characters with the high bit set (>127) are printed as 'M-' followed by the graphical representation for the same character without the high bit set. .SH USAGE .B -e .RS Prints a currency sign ('$') before each line ending. .RE .B -t .RS Prints tab characters as '^I' rather than a literal horizontal tab. .RE .SH DIAGNOSTICS In the event of an error, a debug message will be printed and the program will exit with the appropriate sysexits.h(3) error code. .SH BUGS The program operates in single-byte chunks regardless of intended encoding. .SH RATIONALE POSIX currently lacks a way to display non-printing characters in the terminal using a standard tool. A popular extension to cat(1p), the .B -v option, is the bandage solution GNU and other software suites use. This functionality is a separate tool because its usefulness extends beyond that of cat(1p). .SH AUTHOR Written by DTB . .SH COPYRIGHT Copyright © 2023 DTB. License AGPLv3+: GNU AGPL version 3 or later . .SH SEE ALSO cat(1p), cat-v(1) .I UNIX Style, or cat -v Considered Harmful by Rob Pike