Skip to main content

AWK : Printing columns


In awk each column can be represented by $n , where n can be any number 0,1,2,3 etc.We must specify the delimited of the fields in the command. By default a space or any amount of consecutive spaces is considered as delimiter.

1. To print the column 1 and 4 of the below data in awk

> cat sample.txt 

Tom 1990 IT 98
Joseph 1988 Mechanical 80
Mary 1991 Electronics 95

> awk '{print $1, $4 } ' sample.txt

Tom 98
Joseph 80
Mary 95

2. To print the entire column of the text 

> awk 'print{$0}' sample.txt

Tom 1990 IT 98
Joseph 1988 Mechanical 80
Mary 1991 Electronics 95

3. To print add a text along with column values - 

In the below example we are going to add text "Name:" in front of column 1 , and "Marks:" before column 4.

> awk '{print "Name:"$1," Marks:"$4}' sample.txt

Name:Tom  Marks:98
Name:Joseph  Marks:80
Name:Mary  Marks:95

4. To print the number of words in each line we can use NF parameter .Here each line has four fields.

> awk '{print $0",",NF}' sample.txt

Tom 1990 IT 98, 4
Joseph 1988 Mechanical 80, 4
Mary 1991 Electronics 95, 4

5. If the file is having a different delimiter , say comma(,) , then we have to specify that in awk command to separate the column.

> cat sample2.txt

Tom,1990,IT,98
Joseph,1988,Mechanical,80
Mary,1991,Electronics,95

> awk -F"," '{print $1,$4}' sample2.txt

Tom 98
Joseph 80
Mary 95


Comments

Popular posts from this blog

Pokemon Go download link

Pokemon go has become the buzz word in tech industry now. Nintendo, the Japanese video game company are the creates of this game. Its first of it kind to integrate a game with augmented reality , so people has to go out to real world with there android or iPhone to catch em all . You can download  Pokemon go  from this link. 

UNIX : How to ignore lines with certain names

Sometimes we need to ignore multiple lines with certain words and get the list out of the file. usually it will be a log file to read . The below grep command can be used to ignore multiple words present in a text file. Lets say the file contain $ cat list.txt apple orange apple banana papaya Now we need to ignore line with orange , banana and papaya . So we can use the below grep command. $ cat list.txt | grep -Ev "orange|banana|papaya" apple apple It will ignore lines with the words in -v part of grep.