Cc: "G. Branden Robinson" <branden@xxxxxxxxxx> Cc: Colin Watson <cjwatson@xxxxxxxxxx> Cc: <groff@xxxxxxx> Signed-off-by: Alejandro Colomar <alx@xxxxxxxxxx> --- man/man1/mansect.1 | 61 ++++++++++++++++++++++++++++++++++++++++++++++ src/bin/mansect | 26 ++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 man/man1/mansect.1 create mode 100755 src/bin/mansect diff --git a/man/man1/mansect.1 b/man/man1/mansect.1 new file mode 100644 index 000000000..c9e9138e7 --- /dev/null +++ b/man/man1/mansect.1 @@ -0,0 +1,61 @@ +.\" Copyright 2024, Alejandro Colomar <alx@xxxxxxxxxx> +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.TH mansect 1 (date) "Linux man-pages (unreleased)" +.SH NAME +mansect +\- +print the source code of sections of manual pages +.SH SYNOPSIS +.B mansect +.I section +.RI [ file\~ .\|.\|.] +.SH DESCRIPTION +The +.B mansect +command prints the source code of the +.I section +of the given manual-page files. +If no files are specified, +the standard input is used. +.P +.I section +is an extended regular expression. +.P +The +.B TH +line is unconditionally printed. +.P +The output of this program is suitable for piping to the +.BR groff (1) +pipeline. +.SH EXAMPLES +.EX +.RB $\~ "man -w strtol strtoul | xargs mansect '\[rs](NAME\[rs]|SEE ALSO\[rs])'" +\&.TH strtol 3 2024-07-23 "Linux man-pages 6.9.1" +\&.SH NAME +strtol, strtoll, strtoq \- convert a string to a long integer +\&.SH SEE ALSO +\&.BR atof (3), +\&.BR atoi (3), +\&.BR atol (3), +\&.BR strtod (3), +\&.BR strtoimax (3), +\&.BR strtoul (3) +\&.TH strtoul 3 2024-07-23 "Linux man-pages 6.9.1" +\&.SH NAME +strtoul, strtoull, strtouq \- convert a string to an unsigned long integer +\&.SH SEE ALSO +\&.BR a64l (3), +\&.BR atof (3), +\&.BR atoi (3), +\&.BR atol (3), +\&.BR strtod (3), +\&.BR strtol (3), +\&.BR strtoumax (3) +.EE +.SH SEE ALSO +.BR lexgrog (1), +.BR groff (1), +.BR man (1) diff --git a/src/bin/mansect b/src/bin/mansect new file mode 100755 index 000000000..a13a6b534 --- /dev/null +++ b/src/bin/mansect @@ -0,0 +1,26 @@ +#!/bin/sh +# +# Copyright 2020-2024, Alejandro Colomar <alx@xxxxxxxxxx> +# SPDX-License-Identifier: GPL-3.0-or-later + + +if test $# -lt 1; then + >&2 printf '%s\n' "$(basename "$0"): error: Too few arguments." + return 1; +fi; + +s="$1"; +shift; + + +if test $# -lt 1; then + cat; +else + find -L "$@" -not -type d \ + | xargs grep -l '^\.TH ' \ + | xargs cat; +fi \ +| sed -En \ + -e '/^\.TH /p' \ + -e '/^\.SH '"$s"'$/p' \ + -e '/^\.SH '"$s"'$/,/^\.(TH|SH)/{/^\.(TH|SH)/!p}'; -- 2.39.5
Attachment:
signature.asc
Description: PGP signature