发新话题
打印

Awk工作原理-数据处理过程(3)

Awk工作原理-数据处理过程(3)

大家应该对/etc/passwd密码文件都比较熟悉了,它的格式如下: root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
… … …
使用awk命令如下:
[root@localhost script]# awk -F ':' '{print $1,$3}' /etc/passwd
         Awk使用/etc/passwd文件中一行做为输入,并将这一行赋给内部变量$0,以换行符结束。
         然后,行被指定的分隔符分解成字段,每一个字段存储在以编号的变量中,从$1开始,可以多达100个字段。
Awk的分隔字段的分隔符是用一个内部变量FS
来保存的。初始时,FS被赋值为空格(包括制表符和空格符)。如果要改变默认的分隔符就用-F选项加上要使用的分隔符。
         Awk打印字段时,使用print函数来进行。
{print $1,$3}
输出显示每个字段是使用空格进行分隔,如下:
root 0
bin 1
daemon 2
adm 3
… … …
Awkroot0之间加入了空格,因为在$1$3之间有个逗号。逗号映射着另一个内部变量,叫做输出字段分隔符output field separator, OFS),OFS默认是空格。逗号给OFS变量中存储的字符替换。

         Awk输出之后,将从文件中获取下一行,并将其存储到$0中,覆盖原来的内容。然后将新的字符串分隔成字段并进行处理。就这样直到文件所有的行都进行完后结束。

[ 本帖最后由 lvdbing 于 2008-4-22 02:19 编辑 ]


№→  Learning 《Perl Programming》

TOP

发新话题
版块跳转 
Powered by Discuz! 6.1.0 © 2001-2007 Comsenz Inc.
---------------------------------------------------------------------------------------
本论坛所有文章为会员所发布,会员拥有该内容的所有权力及责任,转载时请注明出处!
站务管理员:我心飞翔 QQ:12012805(请直奔主题) 有害信息举报电话 15914350818
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触和有损学校声誉不属实的言论!
粤ICP备06054096号 茂名市公安局网警支队备案: 4409813060501

Processed in 0.048732 second(s), 9 queries, Gzip enabled.