Awk One-Liner Tips
Print column1, column5 and column7 of a data file or output of any columns list
$awk {print $1, $5, $7} data_file
$cat file_name |awk {print $1 $5 $7}
$ls al |awk {print $1, $5, $7} -- Prints file_permissions,size and date
Syntax of running an awk program
Awk program input file(s)
List all files names whose file size greater than zero.
$ls al |awk $5 > 0 {print $9}
List all files whose file size equal to 512bytes.
$ls al |awk $5 == 0 {print $9}
print all lines
$awk {print } file_name
$awk {print 0} file_name
Number of lines in a file
$awk END {print NR} file_name
Number of columns in each row of a file
$awk {print NF} file_name
Sort the output of file and eliminate duplicate rows
$awk {print $1, $5, $7} |sort u
List all file names whose file size is greater than 512bytes and owner is "oracle"
$ls al |awk $3 == "oracle" && $5 > 512 {print $9}
List all file names whose owner could be either "oracle" or "root"
$ls al |awk $3 == "oracle" || $3 == "root" {print $9}
list all the files whose owner is not "oracle
$ls al |awk $3 != "oracle" {print $9}
List all lines which has atlease one or more characters
$awk NF > 0 {print } file_name
List all lines longer that 50 characters
$awk length($0) > 50 {print } file_name
List first two columns
$awk {print $1, $2} file_name
Swap first two columns of a file and print
$awk {temp = $1; $1 = $2; $2 = temp; print } file_name
Replace first column as "ORACLE" in a data file
$awk {$1 = "ORACLE"; print } data_file
Remove first column values in a data file
$awk {$1 =""; print } data_file
Calculate total size of a directory in Mb
$ls al |awk {total +=$5};END {print "Total size: " total/1024/1024 " Mb"}
Calculate total size of a directory including sub directories in Mb
$ls lR |awk {total +=$5};END {print "Total size: " total/1024/1024 " Mb"}
Find largest file in a directory including sub directories
$ls lR |awk {print $5 "\t" $9} |sort n |tail -1