|-r||rotate reverse (counter-clockwise)|
|-b||normally, rot suppresses printing of trailing blanks in output lines. This option retains them, so all blanks of the input will appear in the output|
|-l||do only the first pass and print the number of lines and the length of the longest line found to standard output|
|-o||change order of columns; in combination with the rotation this yields one more file operation (see below)|
|-B||this is for big files; the data will be hold in temporary files rather than in memory; this slows down rot enormously|
|-c c||use c as "line"-separator, instead of the newline character|
One may ask, what rot is useful for. Think about the functionality of programs like cat(1), or the line oriented grep(1), cut(1), sed(1), sort(1), and others, when applied to a rotated file. In conjunction with rot they do not longer work on lines, but columns. For example
rot f | grep ... | rot -r
is a grep on columns of the file f.
The -o option permits you to manipulate a file in some way of "reflecting" it in a "diagonal" line. The following table shows the different effects of rot called with various options. Data manipulation is shown by means of the output of a file with the contents
and a symbolic notation. R means Rotation (angle given), M means reflection at given mirror axis. Combinations of two calls of rot are also given. (Other combinations have identical effects to one of the mentioned.)
call output function rot CA R DB -90 deg rot -r BD R AC 90 deg rot -o DB M CA / rot -ro AC M BD \ rot | rot DC R BA 180 deg rot | rot -r AB (Id) * CD rot | rot -o BA M ** DC | rot | rot -ro CD M AB -
* Note, that rot|rot -r (or rot|rot|rot|rot) is not exactly the null operator. Rot must insert blanks to keep track of the columns. They may appear at the end of lines in a further run of rot, if the -b option is given. Without this option blanks from the original input may be lost.
** This is not the same as what is done by rev(1). Rev does not retain columns!
Rot knows nothing about tab characters, use expand(1) to handle them correctly.
/tmp/rot* - temporarily copied input, if standard input is incapable of seeking (pipe or terminal) (-B option only) /tmp/rod* - tempfile for holding length of input lines (-B option only)
Martin Schmidt Dortmund - W. Germany email@example.com