]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
tc: add oneline mode
authorRoman Mashak <mrv@mojatatu.com>
Thu, 29 Mar 2018 22:12:35 +0000 (18:12 -0400)
committerDavid Ahern <dsahern@gmail.com>
Fri, 30 Mar 2018 15:18:58 +0000 (08:18 -0700)
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 <mrv@mojatatu.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
man/man8/tc.8
tc/tc.c

index 3dc30ee489e57aea1efb005d12388273cbd7cf4d..840880fbdba63524786af1667775279239fca626 100644 (file)
@@ -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 " <NETNS>
 switches
diff --git a/tc/tc.c b/tc/tc.c
index a31f075d1ffe640c236192150d71432280e69613..68475c156057a9f0dba0c2e9987ac80e2e9b47ad 100644 (file)
--- 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();