Awk Command in Unix

Awk Command in Unix | Awk Command in Unix with Examples

Awk Command in Unix :

In my previous articles i have given the idea about different unix commands with its real life examples. In this article i would like to give you one of the important unix command which is Awk Command in Unix with its real life examples. Awk Command in Unix is most important command used to find and replace the text in unix. Awk Command in Unix is also used for database sorting and validating.I would like to give you the basic explanation of Awk Command in Unix with different real world examples so that user can understand the concept and the purpose of Awk Command.

Awk is abbreviated from the names of the developers – Aho, Weinberger, and Kernighan who has invented the AWK command

Awk Command in Unix Syntax and Usages :

The Awk Command in unix is mainly used for data manipulation with using file and generating the specified reports as well.The awk command programming language requires no compiling, and allows the user to use variables, numeric functions, string functions, and logical operators.The Awk Command in unix is just like a scripting language which is used for text processing.

Syntax :

awk ‘BEGIN {start_action} {action} END {stop_action}’ filename

As i already told you that Awk is used like scripting language we have different sections in Awk.

1-Begin-Section: 

The scripting will start here.

Start_action :

Here user can use any command which will be the starting action.

Action :

Here user can use set of commands to perform text manipulation.

Stop_action:

Here user can use command which will end the script.

Different Usages of Awk Command in Unix :

The Awk command is useful in following situations :

1.Scanning of the File Line by line.

2.It is used to transform the data files and data manipulation in text files.

3. Awk Command used to splits each input line into fields.

4. Awk Command compares input line/fields to pattern.

5. The main use of Awk command is to produce formatted reports.

6. The Awk command is used to perform the arithmetic and logical operations with ease.

7. The Awk command used to perform the conditional looping operations as well.

Options of Awk Command :

-F fs     : This option is used to specify a file separator.

-f file   : This option is used to specify a file that contains awk script.

-v var=value : This option is used to declare the variables.

These are above different options of Awk command. In next session we will check different real life examples of Awk Command.

Different Examples of Awk Command in Unix :

To check different examples let us create one file in unix using cat command.

$cat > employees.txt

Amit manager account 45000

Rohit clerk account 25000

Piyush manager sales 50000

Rahul manager account 47000

Sreenu peon sales 15000

Bikesh clerk sales 23000

Sreejit peon sales 13000

Aniket director purchase 80000

Example 1 : To look what is written in file.

The Print option of Awk command is used to check or print the contents in the File.

$Awk ‘{Print}’ employees.txt

The above command will print the content from the file named employees.txt.

Output :

Amit manager account 45000

Rohit clerk account 25000

Piyush manager sales 50000

Rahul manager account 47000

Sreenu peon sales 15000

Bikesh clerk sales 23000

Sreejit peon sales 13000

Aniket director purchase 80000

 

The print option of Awk command will print the file data on command prompt.

 

Example 2 :  Pattern Matching Technique in Awk.

The Awk command in unix is used to match the specified patterns. If user wants to search some pattern from given file then Awk command is very useful.

$Awk ‘/peon/ {Print}’ employees.txt

The Above Awk command will print the lines which has pattern ‘peon’ or who has ‘peon’ role.

Output :

Sreenu peon sales 15000

Sreejit peon sales 13000

Example 3 : Spliting Lines in to fields (Using Awk Build in variables )

The Awk command in unix will split the lines in to fields. You just need to use the dollar operator to specify the column of the line. Lets say in above examples you just want to know about the Employee,Position. You dont want to see the salary and designation. The Employee name is first line of the column.Awk’s built-in variables include the field variables—$1, $2, $3, and so on ($0 is the entire line) — that break a line of text into individual words or pieces called fields.

Things to Remember in Awk Command in Unix (Built in variables)  :

  • $0 for the whole line.

  • $1 for the first field.

  • $2 for the second field.

  • $n for the nth field.

$Awk ‘{Print $1,$3}’ employees.txt

The above command will print the field no 1 as well as field no 3 together.

Output for the same is :

Amit account

Rohit account

Piyush sales

Rahul account

Sreenu sales

Bikesh sales

Sreejit sales

Aniket purchase

The above command will show only employee name and his/her department. I already explained that Awk command is very useful in reporting purpose. This option is very useful for generating the different kind of reports as it gives the data according to the field numbers.

Example 4 :  Printing Line number using NR variable in Awk Command

NR command keeps a current count of the number of input records. Remember that records are usually lines. Awk command performs the pattern/action statements once for each record in a file.

$Awk ‘{Print NR ,$0}’ employees.txt

To print the number of lines with using Awk command user needs to use NR variable as well as $0 variable for Awk command. As we need to display or check the line number of each and every line of the file we need to use $0 variable of Awk command.

Output :

1 Amit manager account 45000

2 Rohit clerk account 25000

3 Piyush manager sales 50000

4 Rahul manager account 47000

5 Sreenu peon sales 15000

6 Bikesh clerk sales 23000

7 Sreejit peon sales 13000

8 Aniket director purchase 80000

Example 5 : Displaying First filed and Last field in reporting structure using NF variable

NF command keeps a count of the number of fields within the current input record.The NF command used to display last field in the given file. If user wants a report which contains the first field as well as last field then NF command is used.If user dont know the number of last field in the file then this command is always useful.

$Awk ‘{Print $1,$NF}’ employees.txt

The above command will give the output as follows :

Amit  45000

Rohit 25000

Piyush  50000

Rahul  47000

Sreenu  15000

Bikesh 23000

Sreejit 13000

Aniket 80000

Example 6 : If user wants to display specific lines  (Using NR command )

NR command is also useful in displaying the specific lines.

$Awk ‘NR == 2 , NR ==4 {Print NR ,$0}’ employees.txt

The NR == 2 indicates the starting point of the line (rowwise) and NR== 4 shows ending point of the line.So The above command will display the lines between 2 to 4.

Output :

2 Rohit clerk account 25000

3 Piyush manager sales 50000

4 Rahul manager account 47000

Example 7 : If you want to use seperator and print first line with line number.

User can add the seperator between line number and the column. Lets say user wants to use the Pipe as seperator.

$Awk ‘{Print NR ” | ” $1}’ employees.txt

The output of above file is :

1 | Amit

2 | Rohit

3 | Piyush

4 | Rahul

5 | Sreenu

6 | Bikesh

7 | Sreejit

8 | Aniket

Example 8 :  To check and print the longest line number of characters in the file

User can check the longest line and print it using Awk command. As i already told you the Awk uses the conditional formatting.Here to print the longest line from the file first user needs to check the count of words and letters rowwise and then display the longest line.

$ Awk ‘ { if (length($0) > max_len ) max_len = length ($0) } End { Print max_len } ‘ employees.txt

I would like to fragment the above command. The max_len variable includes the maximum length of the entire file and  if (length($0) > max_len ) this condition will check the maximum length line from the file and displays the line.

Output :

30

Example 9 : To count the lines in the file

The Awk command is used to count the lines in the file.

$ Awk ‘END { print NR } ‘ employees.txt

The above command will print the count of the number of lines.

The output for the same is :

8

Example 10 :  Print the lines with more than 28 characters.

If user wants to print the lines with some specified count of characters then Awk command is useful.

$ Awk ‘length($0) > 28 ‘ employees.txt

 

There is only a line which has more than 28 characters.

Output :

Aniket director purchase 80000

 

Example 11 :  Checking the cube of the given numbers.

User can write different programs using Awk command. I would like to give one example which will show the cube of given number till 3.

$ Awk ‘BEGIN { for(i=1,i<=3,i++) print “Cube of”,i ,”is”,i*i*i; }’

The above program will give the cube of the numbers 1 ,2, 3

Output :

Cube of 1 is 1

Cube of 2 is 8

Cube of 3 is 27

User can write these kind of for looping structure without use of any programming language in unix using Awk command.

Hope the above examples gives you best idea of Awk command in Unix. If you like this article or if you have any suggestions regarding the article of Awk Command in Unix kindly comment it in comment section.

Leave a Reply

Your email address will not be published. Required fields are marked *