雪糕 2010-12-19
a.txt
andy 05/99 48311 Green 8 40 44
congfeng 06/99 4317 green 9 24 26
ljb 02/99 48 Yellow 12 35 28
carl 07/99 4842 Brown-3 12 16 26
rich 05/99 4712 Brown-2 12 30 28
[root@localhost shell]# awk '{ print $0 }' a.txt
[root@localhost shell]# awk '{ print $1,$4}' a.txt
#单独使用begin/BEGIN都可以,但是要使用begin-end的方式。必须全部大写:BEGIN-END
[root@localhost shell]# awk 'BEGIN {print "hello, andylin!\nName\tBelt\n"}
[root@localhost shell]# awk 'begin {print "hello,andylin!\nName\tBelt"} {print $1, $4}
END {print"end of awk"} ' a.txt
[root@localhost shell]# awk '{if ($4 ~ /Brown/ ) print $0}' a.txt
[root@localhost shell]# awk '$3=="48" {print $0}' a.txt
[root@localhost shell]# awk '$0 !~ /Brown/' a.txt
[root@localhost shell]# awk '{if($0 !~ /Brown/) print$0}' a.txt
[root@localhost shell]# awk '{if ($4 !="Brown-2") print$0}' a.txt
[root@localhost shell]# awk '{if($6<$7) print$0} ' a.txt
[root@localhost shell]# awk '{if($6 <= $7) print $0}' a.txt
[root@localhost shell]# awk '/[Gg]reen/' a.txt
[root@localhost shell]# awk '{if($0~/[Gg]reen/) print $0}' a.txt
[root@localhost shell]# awk '{if ($1=="andy" && $4=="Green") print $0}' a.txt
[root@localhost shell]# awk '{if ($1=="andy" || $4=="Green") print $0}' a.txt
awk 'BEGIN {print ARGC,"_" FS, "_"} {print NF,NR} ' a.txt
awk 'END{print NR,$NF,FILENAME}' a.txt
[root@localhost shell]# echo $PWD | awk -F/ '{print $NF}'
[root@localhost shell]# pwd | awk -F/ '{print $NF}'
[root@localhost shell]# awk '{name=$1;belts=$4; if (belts ~/Yellow/) print name " is
belt " belts}' a.txt
[root@localhost shell]# awk 'BEGIN {BASELINE="27 "} {if($6 < BASELINE) print $0}' a.txt
[root@localhost shell]# awk 'BEGIN {BASELINE=27} {if($6 < BASELINE) print $0}' a.txt
[root@localhost shell]# awk '{if($1=="andy"){$1="aaa"}; print $1}' a.txt
[root@localhost shell]# awk '{if($1 > "cc") print$1,$2}' a.txt
[root@localhost shell]# awk '{if($1 > "cc") {}; print$1,$2}' a.txt
[root@localhost shell]# awk 'BEGIN{print"Name\tDifference"} {if($6<$7){$8=$7-
$6;print$1,$8}}' a.txt
[root@localhost shell]# awk '{total += $6} END{print "total points:"total}' a.txt
[root@localhost shell]# awk '{total += $6}{print$0} END{print "total points:"total}'
a.txt
[root@localhost shell]# ls -l | awk '/^[^d]/ {print $8"\t"$5} {total += $5} END{print
"total KB:"total}'
[root@localhost shell]# awk 'gsub(/4842/,1111){print$0}' a.txt
[root@localhost shell]# awk 'gsub(/4842/,1111){print$0}' a.txt
[root@localhost shell]# awk 'BEGIN {print "length($1)",length($1)} {print "length
($1):"length("a"$1)}' a.txt
[root@localhost shell]# awk 'BEGIN {print split("123#456#678", arr, "#"),arr[0], arr[1],
arr[2]}'
[root@localhost shell]# echo "65" | awk '{printf"%c\n",$0}';
[root@localhost shell]# awk '{printf "%-15s %s\n", $1,$3}' a.txt
[root@localhost shell]# who | awk '{print $1" you are connect "$2}'
awk文件
#!/bin/awk -f
BEGIN{
print("=========== Begin =================");
strRecord="123#456#789";
split(strRecord, arr, "#");
FS="\t";
};
{
print $0;
total += $6;
}
END{
for (i in arr)
{
print(arr[i]"\t");
}
print("total val:", total);
print("******* end of awk ***********");
};