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

UNIX : How to get record count from zipped file

Sometimes we may need to get records count from file . For that we can use wc -l , command with file name. In some situation the file will be in compressed format . wc -l will not directly work with zipped files . In this case we can do zcat the file and pipe the word count command with it. Example : Let say we have a file cricketData.dat.gz To get word count from the file use : zcat cricketData.dat.gz | wc -l This will give the record count.

Excel : How to pad zeros

Today I got a requirement to format the number in excel cell - to left pad number with zeros.i find the following function very useful to do it. In case one to make the number left padded with "0" s give the formula =TEXT(A1,"0000") In case two even more enhanced form to make it left padded with "0" and add two decimal places give the formula as =TEXT(A2,"0000.00")

Scala

Scala is a object oriented functional type programing language. All variables declared in scala is considered as objects.