Nov 012011
 

After many years of administration of Unix/Linux systems and using bash for many tasks i’ve discovered the command tac, the contrary of cat,
What this command do it’s to concatenate and print files in reverse order, it writes each file to standard output, last line first.

bash$ cat file1.txt
This is the line 1.
This is the line 2.
 
bash$ tac file1.txt
This is the line 2.
This is the line 1.



This is the basic usage of tac but you could use it also for other things like recovering a text file with a bad block:

( cat badfile.log ; tac badfile.log | tac ) > goodfile.log

When there is a bad block in the middle of your file, you can see its beginning with `cat’ and its end with `tac’. But both commands terminates with an error. So this sequence rebuilds a new file without the bad block.

A similar command is rev that copies the specified files to the standard output, reversing the order of characters in every line.
For example taking the former example we have:

bash$ cat file1.txt
This is the line 1.
This is the line 2.
 
bash$ rev file1.txt
.1 enil eht si sihT
.2 enil eht si sihT

And naturally you can combine the two, to have a file totally inverted:

bash$ cat file1.txt
This is the line 1.
This is the line 2.
 
bash$ rev file1.txt | tac
.2 enil eht si sihT
.1 enil eht si sihT


Popular Posts:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*