Полезная информация

sed & awk

sed & awkSearch this book
Previous: 5.8 PrintChapter 5
Basic sed Commands
Next: 5.10 Next
 

5.9 Print Line Number

An equal sign (=) following an address prints the line number of the matched line. Unless you suppress the automatic output of lines, both the line number and the line itself will be printed. Its syntax is:

[line-address]=

This command cannot operate on a range of lines.

A programmer might use this to print certain lines in a source file. For instance, the following script prints the line number followed by the line itself for each line containing a tab followed by the string "if". Here's the script:

#n print line number and line with if statement
/       if/{
=
p
}

Note that #n suppresses the default output of lines. Now let's see how it works on a sample program, random.c:

$ sed -f sedscr.= random.c
192
        if(  rand_type  ==  TYPE_0  )  {
234
        if(  rand_type  ==  TYPE_0  )  state[ -1 ] = rand_type;
236
        if(  n  <  BREAK_1  )  {
252
                if(  n  <  BREAK_3  )  {
274
        if(  rand_type  ==  TYPE_0  )  state[ -1 ] = rand_type;
303
        if(  rand_type  ==  TYPE_0  )  state[ -1 ] = rand_type;

The line numbers might be useful in finding problems reported by the compiler, which typically lists the line number.


Previous: 5.8 Printsed & awkNext: 5.10 Next
5.8 PrintBook Index5.10 Next

The UNIX CD Bookshelf NavigationThe UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System