1. gawk对文件的处理能力很强,它主要用来进行数据分析和统计
命令格式为gawk 'program' input-file
第一个文件是BBS-LIST.TXT 下面是里面的内容:
=====================================
aardvark 555-5553 1200/300 B
alpo-net 555-3412 2400/1200/300 A
barfly 555-7685 1200/300 A
bites 555-1675 2400/1200/300 A
camelot 555-0542 300 C
core 555-2912 1200/300 C
fooey 555-1234 2400/1200/300 B
foot 555-6699 1200/300 B
macfoo 555-6480 1200/300 A
sdace 555-3430 2400/1200/300 A
sabafoo 555-2127 1200/300 C
======================================
第二个文件名叫SHIPPED.TXT,下面是文件内容:
=====================================
Jan 13 25 15 115
Feb 15 32 24 226
Mar 15 24 34 228
Apr 31 52 63 420
May 16 34 29 208
Jun 31 42 75 492
Jul 24 34 67 436
Aug 15 34 47 316
Sep 13 55 37 277
Oct 29 54 68 525
Nov 20 87 82 577
Dec 17 35 61 401
Jan 21 36 64 620
Feb 26 58 80 652
Mar 24 75 70 495
Apr 21 70 74 514
======================================
下面是我举得几个小例子,其实还有很多 ,大家有兴趣可以自己去查看来学习
(1) gawk '/foo/ {print $0}' BBS-LIST.TXT //输出含有‘foo’的记录,运行截图如下:
(2)gawk '$1=="Feb" {sum=$2+$3} END {print sum}' SHIPPED.TXT //找到第一列中与Feb相等的 然后将其第二项与第三项相加,直到每一行都处理过为止END{print sum}的意思为所有输入读完以后,执行一次print sum命令,运行截图如下:
(3)gawk '$1~/foo/ {print $0}' BBS-LIST.TXT // BBS-LIST.TXT中第一栏的每个记录做检查,如果含有子串‘foo’ 编将这一记录打印出来,运行截图如下
(4) gawk 'BEGIN {OFS=";"; ORS="\n\n"} /foo/ {print $1,$2}' BBS-LIST.TXT //打印每个记录的第一栏和第二栏,两栏之间用;隔开,每行输出后加一个空白行,运行截图如下