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 <m...@mojatatu.com> --- man/man8/tc.8 | 15 ++++++++++++++- tc/tc.c | 8 +++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/man/man8/tc.8 b/man/man8/tc.8 index 3dc30ee489e5..840880fbdba6 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 " := {" @@ -649,6 +650,18 @@ 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 " <NETNS> switches .B tc diff --git a/tc/tc.c b/tc/tc.c index a31f075d1ffe..68475c156057 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(); -- 2.7.4