Working with text files
Given the simplicity and readability, text files are widely used in computing system for various purposes. In this practice, we will use text files to store numerical data. A benefit of storing data in text file is that many tools coming along with the Linux system can be used directly to process the data.
In the examples below, we will create two text files to store the final-exame scores of four students in the mathematics and language courses. We will then introduce few usueful Linux commands to browse and analysis the data.
Before we start, make sure the directory
$HOME/tutorial/labs is already available; otherwise create it with
$ mkdir -p $HOME/tutorial/labs
and change the present working directory to it:
$ cd $HOME/tutorial/labs
Creating and editing text file
There are many text editors in Linux. Here we use the editor called
nano which is relatively easy to adopt. Let’s firstly create a text file called
score_math.dat using the following command:
In Linux, the suffix of the filename is irrelevant to the file type. Use the
file command to examine the file type.
$ nano score_math.dat
You will be entering an empty editing area provided by
nano. Copy or type the following texts into the area:
Press Control+o followed by the Enter key to save the file. Press Control+x to quit the editing environment and return to the prompt.
Now repeat the steps above to create another file called
score_lang.dat, and paste the data below into it.
When you list of the content of the present working directory, you should see the two data files.
$ ls -l
-rw-r--r-- 1 honlee tg 40 Sep 30 15:06 score_lang.dat
-rw-r--r-- 1 honlee tg 37 Sep 30 15:06 score_math.dat
Browsing text file
Several commands can be used to brows the text file. First of all, the command
cat can be used to print the entire content on the terminal. For example:
$ cat score_math.dat
When the content is too large to fit into the terminal, one uses either
less command to print contents in pages. For example,
$ more score_math.dat
$ less score_math.dat
less provides more functionalities than the
more command such as up/down scrolling and text search.
When the top and bottom of the content are the only concern, one can use the commands
head. To print the first 2 lines, one does
$ head -n 2 score_math.dat
To print the last 2 lines, one does
$ tail -n 2 score_math.dat
Searching in text file
For search a string in text file, one use the command
grep. For example, if we would like to search for the name
Thomas in the file
score_math.dat, we do
$ grep 'Thomas' score_math.dat
grep supports advanced pattern searching using the regular expression.