In general, new non-standard options are bad. Basically, if we add this someone will use it in a script. Then it will become non-portable. You cannot just invent something on your own like this, without doing research to find out if someone else added a different option. I don't see evidence of that, so the gut answer is no.
> here is a diff that adds optional linebuffering to tr(1) with command > line switch -u like in sed(1). I need this to remove '\r' characters > from a continues input steam which lines have to be there immediately. > > Please write me if something is wrong with this diff or the change > itself. I will fix it. > > bye, > Jan > > Index: tr.1 > =================================================================== > RCS file: /cvs/src/usr.bin/tr/tr.1,v > retrieving revision 1.20 > diff -u -p -r1.20 tr.1 > --- tr.1 14 Aug 2013 08:39:27 -0000 1.20 > +++ tr.1 19 Nov 2013 20:46:33 -0000 > @@ -41,18 +41,18 @@ > .Nd translate characters > .Sh SYNOPSIS > .Nm tr > -.Op Fl cs > +.Op Fl csu > .Ar string1 string2 > .Nm tr > -.Op Fl c > +.Op Fl cu > .Fl d > .Ar string1 > .Nm tr > -.Op Fl c > +.Op Fl cu > .Fl s > .Ar string1 > .Nm tr > -.Op Fl c > +.Op Fl cu > .Fl ds > .Ar string1 string2 > .Sh DESCRIPTION > @@ -86,6 +86,14 @@ or > .Ar string2 ) > in the input into a single instance of the character. > This occurs after all deletion and translation is completed. > +.It Fl u > +Force output to be line buffered, > +printing each line as it becomes available. > +By default, output is line buffered when standard output is a terminal > +and block buffered otherwise. > +See > +.Xr setbuf 3 > +for a more detailed explanation. > .El > .Pp > In the first synopsis form, the characters in > @@ -284,6 +292,10 @@ The > utility is compliant with the > .St -p1003.1-2008 > specification. > +.Pp > +The flag > +.Op Fl u > +is an extension to that specification. > .Pp > System V has historically implemented character ranges using the syntax > .Dq [c-c] > Index: tr.c > =================================================================== > RCS file: /cvs/src/usr.bin/tr/tr.c,v > retrieving revision 1.15 > diff -u -p -r1.15 tr.c > --- tr.c 27 Oct 2009 23:59:46 -0000 1.15 > +++ tr.c 19 Nov 2013 20:46:33 -0000 > @@ -88,7 +88,7 @@ main(int argc, char *argv[]) > int cflag, dflag, sflag, isstring2; > > cflag = dflag = sflag = 0; > - while ((ch = getopt(argc, argv, "cds")) != -1) > + while ((ch = getopt(argc, argv, "cdsu")) != -1) > switch((char)ch) { > case 'c': > cflag = 1; > @@ -99,6 +99,9 @@ main(int argc, char *argv[]) > case 's': > sflag = 1; > break; > + case 'u': > + setlinebuf(stdout); > + break; > case '?': > default: > usage(); > @@ -239,9 +242,9 @@ static void > usage(void) > { > fprintf(stderr, > - "usage: tr [-cs] string1 string2\n" > - " tr [-c] -d string1\n" > - " tr [-c] -s string1\n" > - " tr [-c] -ds string1 string2\n"); > + "usage: tr [-csu] string1 string2\n" > + " tr [-cu] -d string1\n" > + " tr [-cu] -s string1\n" > + " tr [-cu] -ds string1 string2\n"); > exit(1); > } >