1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
. if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "PTARGREP 1"
.TH PTARGREP 1 2024-04-05 "perl v5.38.2" "Perl Programmers Reference Guide"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
ptargrep \- Apply pattern matching to the contents of files in a tar archive
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 1
\& ptargrep [options] <pattern> <tar file> ...
\&
\& Options:
\&
\& \-\-basename|\-b ignore directory paths from archive
\& \-\-ignore\-case|\-i do case\-insensitive pattern matching
\& \-\-list\-only|\-l list matching filenames rather than extracting matches
\& \-\-verbose|\-v write debugging message to STDERR
\& \-\-help|\-? detailed help message
.Ve
.SH DESCRIPTION
.IX Header "DESCRIPTION"
This utility allows you to apply pattern matching to \fBthe contents\fR of files
contained in a tar archive. You might use this to identify all files in an
archive which contain lines matching the specified pattern and either print out
the pathnames or extract the files.
.PP
The pattern will be used as a Perl regular expression (as opposed to a simple
grep regex).
.PP
Multiple tar archive filenames can be specified \- they will each be processed
in turn.
.SH OPTIONS
.IX Header "OPTIONS"
.IP "\fB\-\-basename\fR (alias \-b)" 4
.IX Item "--basename (alias -b)"
When matching files are extracted, ignore the directory path from the archive
and write to the current directory using the basename of the file from the
archive. Beware: if two matching files in the archive have the same basename,
the second file extracted will overwrite the first.
.IP "\fB\-\-ignore\-case\fR (alias \-i)" 4
.IX Item "--ignore-case (alias -i)"
Make pattern matching case-insensitive.
.IP "\fB\-\-list\-only\fR (alias \-l)" 4
.IX Item "--list-only (alias -l)"
Print the pathname of each matching file from the archive to STDOUT. Without
this option, the default behaviour is to extract each matching file.
.IP "\fB\-\-verbose\fR (alias \-v)" 4
.IX Item "--verbose (alias -v)"
Log debugging info to STDERR.
.IP "\fB\-\-help\fR (alias \-?)" 4
.IX Item "--help (alias -?)"
Display this documentation.
.SH COPYRIGHT
.IX Header "COPYRIGHT"
Copyright 2010 Grant McLean <grantm@cpan.org>
.PP
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
|