In the last few posts, we looked at I/O Redirection and Piping in Linux System.
Today we are going to look at commands that help us in viewing and sorting files.
Let's start from the command that we have used before multiple times - cat command.
The cat command is used to concat multiple files together or just read the files.
1.cat command
The syntax for cat command
Let's take an example where we have two grocery lists grocery1.txt and grocery2.txt
First, let's view the file content using cat
Similarly, we can view the 2nd file
In the above examples, we used the command cat <filename> to view the file contents.
What if we wanted to concat these 2 files?
- concat above files
In the above example, we used the command cat grocery1.txt grocery2.txt > groceryFinal.txt where
cat represents the concat command
grocery1.txt grocery2.txt represents files to concat.
> represents redirection of Output Stream
groceryFinal.txt represents the output file.
Then to confirm that all the content is present we used cat groceryFinal.txt to view the content of the output file.
But the above output is a little hard to read, what if we wanted to view the output file but numbered?
Let's check it out:-
- View the output file numbered
In the above example, we used the command cat -n groceryFinal.txt where
cat represents the concat command
-n represents the option to number all output line
groceryFinal.txt represents the file to view the content of
2. tac command
The tac command which is just the reverse of cat command starts reading from bottom.
It does not change the content it just reads from the bottom.
To use tac command we simply use tac along with the "filename"
Let's just use the previously concatenated file as input for the tac command.
In the above example, we used the command tac groceryFinal.txt which printed the content of the file from bottom up.
3. rev command
The rev command is used to reverse the content of the file.
It reads the file from the top but the content will be reversed.
The syntax for rev command
To use rev command we simply use rev along with the "filename"
Let's again use our groceryFinal.txt as an input
In the above example, we used the command rev groceryFinal.txt which printed the content of the file reversed.
I can't seem to find the practical usage of rev command other than irritating someone by sending them the file after applying rev command :)
4. less command
The less command provides us a way to view text files in our terminal itself.
The syntax for opening a file using less command
To open a file using less we only need to call less command along with the filename.
less provides us tons of functionality such as search a character, scroll up/down, etc.
5. Head and Tail
head command is used to print the lines from the start of the file whereas the tail command is used to print the files from the bottom of the file.
Let's take an example for better understanding
- print only the first two line from a file
In the above example, we used the command head -n 2 groceryFinal.txt where
head represents the head command
-n 2 represents the number of lines option
groceryFinal.txt represents the file we want to read
- print only the last two lines from a file
tail represents the tail command
-n 2 represents the number of lines option
groceryFinal.txt represents the file we want to read
So head and the tail command is basically used to view the snippet of file content.
6. sort command
The sort command is used to sort lines of text files.
The syntax for sort command
To use sort command we simply use sort command along with options and filename
In the above example, we use the command sort groceryFinal.txt which sorts the list in ascending order.
What if we want to sort in descending order?
In the above example, we used the command sort -r groceryFinal.txt where
sort represents sort command
-r represents the reverse option
groceryFinal.txt represents the input file
Can you guess what else can we use to get the same kind of output?
sort groceryFinal.txt | tac
If you guessed the tac command you were right. We can use the tac command along with sort command convert the ascending sorted output to descending output.
But what about numbers?
Let's see what happens when we use the sort command with numbers
Wait, that seems wrong but why?
So the sort command by default compares digit by digit.
So what can we do for sorting numbers?
- sort file with respect to numbers
In the above example, we used the command sort -n numbers.txt where
sort represents sort command
-n represents numeric-sort
numbers.txt represents file-to-be-sorted
- sort and only return distinct values
In the above example, we used the command sort -un numbers.txt where
sort represents sort command
-un represents unique numeric-sort
numbers.txt represents file-to-be-sorted
What if we have data with multiple columns and we want to sort data on the basis of a specific column?
- sort data based on column 2
In the above example, we used the command sort -k 2n employees.txt where
In the above example, we used the command sort -un numbers.txt where
sort represents sort command
-k 2n represents key i.e. column 2 numeric-sort
employees.txt represents file-to-be-sorted
This was all about Viewing and Sorting Files in the Linux System.
Please, let me know if there are any questions and suggestions on what you want us to explore next.




















Top comments (0)