More Commands for Reading Text Files


You have already been introduced to several basic shell prompt commands for reading files in text editors. The following sections describe a few more.

The head Command

You can use the head command to look at the beginning of a file. The command syntax is head filename.

head can be a useful command, but because it is limited to the first several lines, you will not see how long the file actually is. By default, you can only read the first ten lines of a file. You can change the number of lines displayed by specifying a number option, as shown in the following command:

head -20 filename 

The tail Command

The reverse of head is tail. Using tail, you can view the last ten lines of a file.

The grep Command

The grep command is useful for finding specific character strings in a file. For example, if you want to find every reference made to "coffee" in the file sneakers.txt, you would type:

grep coffee sneakers.txt

You would see every line in that file where the word "coffee" is found.

Tip

Unless otherwise specified, grep searches are case sensitive. That means that searching for "Coffee" is different than searching for "coffee." So, among grep's options is -i, which allows you to make a case-insensitive search through a file. Read the grep man page for more about this command.

I/O Redirection and Pipes

You can use pipes and output redirection when you want to store and/or print information to read at a later time.

You can, for example, use grep to search for particular contents of a file and then have those results either saved as a file or sent to a printer.

To print the information about references to "coffee" in sneakers.txt, for example, just type the following:

grep coffee sneakers.txt | lpr

Wildcards and Regular Expressions

What if you forget the name of the file you are looking for? Using wildcards or regular expressions, you can perform actions on a file or files without knowing the complete filename. Just fill out what you know, then substitute the remainder with a wildcard. Wildcards are special symbols that you can substitute for letters, numbers, and symbols that make finding particular directories and files easier than examining long directory listings to find what you are searching for.

Tip

To read more about wildcards and regular expressions, take a look at the bash man page (man bash).

Remember that you can save the file to a text file by typing man bash | col –b > bash.txt. Then, you can open and read the file with less or pico (pico bash.txt). If you want to print the file, be aware that it is quite long.

We know the file starts with sneak, as in sneaksomething.txt, so type:

ls sneak*.txt

and find the name of the file:

sneakers.txt

You will probably use the asterisk (*) most frequently when you are searching. The asterisk will search out everything that matches the pattern you are looking for. So, even by typing:

ls *.txt

or:

ls sn*

You would find sneakers.txt and any other files whose names begin with sn or ends with .txt. It helps to narrow your search as much as possible.

One way to narrow a search is to use the question mark symbol (?). Like the asterisk, using ? can help locate a file matching a search pattern.

In this case, though, ? is useful for matching a single character, so if you were searching for sneaker?.txt, you would get sneakers.txt as a result, and/or sneakerz.txt, if there were a file with that name.

Regular expressions are more complex than the straightforward asterisk or question mark.

When an asterisk, for example, just happens to be part of a filename, as might be the case if the file sneakers.txt was called sneak*.txt, that is when regular expressions can be useful.

Using the backslash (\), you can specify that you do not want to search out everything by using the asterisk, but you are instead looking for a file with an asterisk in the name. This is called escaping the wildcard.

For example, if the file is called sneak*.txt, type:

 sneak\*.txt 

Table 8-3 shows a brief list of wildcards and regular expressions.

Table 8-3: Wildcards and Regular Expressions

Character

What It Matches

*

All characters

?

One character in a string (such as sneaker?.txt)

\*

The * character

\?

The ? character

\)

The ) character




The Red Hat Documentation Team - Official Red Hat Linux User's Guide
The Red Hat Documentation Team - Official Red Hat Linux User's Guide
ISBN: N/A
EAN: N/A
Year: 2002
Pages: 223

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net