From: Roman Mashak Date: Thu, 29 Mar 2018 22:12:35 +0000 (-0400) Subject: tc: add oneline mode X-Git-Tag: v4.17.0~45 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e8634eb13f30c58d1e28d975d99509680e1abc3;p=thirdparty%2Fiproute2.git tc: add oneline mode Add initial support for oneline mode in tc; actions, filters and qdiscs will be gradually updated in the follow-up patches. Signed-off-by: Roman Mashak Signed-off-by: David Ahern --- diff --git a/man/man8/tc.8 b/man/man8/tc.8 index 3dc30ee48..840880fbd 100644 --- a/man/man8/tc.8 +++ b/man/man8/tc.8 @@ -95,7 +95,8 @@ tc \- show / manipulate traffic control settings \fB[ \fB-n\fR[\fIetns\fR] name \fB] \fR| \fB[ \fB-nm \fR| \fB-nam\fR[\fIes\fR] \fB] \fR| \fB[ \fR{ \fB-cf \fR| \fB-c\fR[\fIonf\fR] \fR} \fB[ filename ] \fB] \fR -\fB[ -t\fR[imestamp\fR] \fB\] \fR| \fB[ -t\fR[short\fR] \fB]\fR } +\fB[ -t\fR[imestamp\fR] \fB\] \fR| \fB[ -t\fR[short\fR] \fR| \fB[ +-o\fR[neline\fR] \fB]\fR } .ti 8 .IR FORMAT " := {" @@ -648,6 +649,18 @@ First failure will cause termination of tc. don't terminate tc on errors in batch mode. If there were any errors during execution of the commands, the application return code will be non zero. +.TP +.BR "\-o" , " \-oneline" +output each record on a single line, replacing line feeds +with the +.B '\e' +character. This is convenient when you want to count records +with +.BR wc (1) +or to +.BR grep (1) +the output. + .TP .BR "\-n" , " \-net" , " \-netns " switches diff --git a/tc/tc.c b/tc/tc.c index a31f075d1..68475c156 100644 --- a/tc/tc.c +++ b/tc/tc.c @@ -42,6 +42,8 @@ int force; bool use_names; int json; int color; +int oneline; +const char *_SL_; static char *conf_file; @@ -191,7 +193,7 @@ static void usage(void) "where OBJECT := { qdisc | class | filter | action | monitor | exec }\n" " OPTIONS := { -s[tatistics] | -d[etails] | -r[aw] | -b[atch] [filename] | -n[etns] name |\n" " -nm | -nam[es] | { -cf | -conf } path } |\n" - " -j[son] -p[retty] -c[olor]\n"); + " -o[neline] -j[son] -p[retty] -c[olor]\n"); } static int do_cmd(int argc, char **argv, void *buf, size_t buflen) @@ -487,6 +489,8 @@ int main(int argc, char **argv) ++timestamp_short; } else if (matches(argv[1], "-json") == 0) { ++json; + } else if (matches(argv[1], "-oneline") == 0) { + ++oneline; } else { fprintf(stderr, "Option \"%s\" is unknown, try \"tc -help\".\n", argv[1]); return -1; @@ -494,6 +498,8 @@ int main(int argc, char **argv) argc--; argv++; } + _SL_ = oneline ? "\\" : "\n"; + if (color & !json) enable_color();