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 : unpack and pack using tar

Tarball or tar is a utility in linux to unpack or pack the files. Lets say we have a file name hello.tar.gz which is packed and compressed. To unpack the file use the below command > tar xvzf hello.tar.gz This is unpack the compressed tarball file to the directory hello in current location. To pack a list of files to a compressed tarball file , we can follow the below steps. Let say we have the following list of files in Hello directory. > cd Hello > ls helloworld.py README.txt Move back to parent directory and give the below command. > cd .. > tar zcvf hello.tar.gz Hello This will create the compressed tar file in the current location