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 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.

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.

Python : How to create your own module in python

Python modules are easy to create and imported in to your python program. How to create a module? The python program itself can be called as a python module. All the function which you find that can be grouped together can be put into the file. Here a simple example to print the text on display is used and called as techinfotalks. #!/usr/bin/python # Python Module def func_hi(): print "Welcome to the module" #End How to use the module in program? You just import the module created by calling the import.After that directly call the function which ever you need.The module named techinfotalks is imported as named as ti. #!/usr/bin/python import techinfotalks as ti print "Calling funcion in module" ti.func_hi() #End of program