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