Add a -r flag to zzcat to repeatedly cat file lists.

This commit is contained in:
Sam Hocevar
2010-01-18 02:02:06 +00:00
committed by sam
parent 8ac7c35099
commit 36058474dc
2 changed files with 20 additions and 9 deletions
+5 -1
View File
@@ -2,7 +2,8 @@
.SH NAME
zzcat \- concatenate files using different instruction sequences
.SH SYNOPSIS
\fBzzcat\fR [\fB\-AbeEntTv\fR] [\fB\-x\fR \fIsequence\fR] [\fIFILE\fR]...
\fBzzcat\fR [\fB\-AbeEntTv\fR] [\fB\-r\fR \fIloops\fR]
[\fB\-x\fR \fIsequence\fR] [\fIFILE\fR]...
.br
\fBzzcat \-l\fR | \fB\-\-list\fR
.br
@@ -34,6 +35,9 @@ Display $ at end of each line.
\fB\-n\fR, \fB\-\-number\fR
Number all output lines.
.TP
\fB\-r\fR, \fB\-\-repeat\fR=\fIloops\fR
Concatenate all files \fIloops\fR times.
.TP
\fB\-t\fR
Equivalent to \fB\-vT\fR.
.TP
+15 -8
View File
@@ -62,6 +62,7 @@ static void version(void);
static void usage(void);
/* Global parameters */
static int repeat = 1;
static char escape_tabs = 0;
static char escape_ends = 0;
static char escape_other = 0;
@@ -85,7 +86,7 @@ int main(int argc, char *argv[])
for (;;)
{
#define OPTSTR "+AbeEnstTvx:lhV"
#define OPTSTR "+AbeEnr:stTvx:lhV"
#define MOREINFO "Try `%s --help' for more information.\n"
int option_index = 0;
static struct myoption long_options[] =
@@ -94,6 +95,7 @@ int main(int argc, char *argv[])
{ "number-nonblank", 0, NULL, 'b' },
{ "show-ends", 0, NULL, 'E' },
{ "number", 0, NULL, 'n' },
{ "repeat", 1, NULL, 'r' },
{ "squeeze-blank", 0, NULL, 's' },
{ "show-tabs", 0, NULL, 'T' },
{ "show-nonprinting", 0, NULL, 'v' },
@@ -125,6 +127,9 @@ int main(int argc, char *argv[])
case 'n': /* --number */
number_lines = 1;
break;
case 'r': /* --repeat */
repeat = atoi(optarg);
break;
case 's': /* --squeeze-blank */
squeeze_lines = 1;
break;
@@ -164,12 +169,13 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
for (i = myoptind; i < argc; i++)
{
int ret = run(sequence, argv[i]);
if (ret)
return ret;
}
while (repeat-- > 0)
for (i = myoptind; i < argc; i++)
{
int ret = run(sequence, argv[i]);
if (ret)
return ret;
}
return EXIT_SUCCESS;
}
@@ -788,10 +794,11 @@ static void usage(void)
printf(" -e equivalent to -vE\n");
printf(" -E, --show-ends display $ at end of each line\n");
printf(" -n, --number number all output lines\n");
printf(" -r, --repeat=<loops> concatenate command line files <loops> times\n");
printf(" -t equivalent to -vT\n");
printf(" -T, --show-tabs display TAB characters as ^I\n");
printf(" -v, --show-nonprinting use ^ and M- notation, except for LFD and TAB\n");
printf(" -x, --execute <sequence> execute commands in <sequence>\n");
printf(" -x, --execute=<sequence> execute commands in <sequence>\n");
printf(" -l, --list list available program functions\n");
printf(" -h, --help display this help and exit\n");
printf(" -V, --version output version information and exit\n");