Awk各部分详解-记录(4)
[align=left]前面介绍过[color=black][size=10.5pt]awk[/size][/color][color=black][size=10.5pt]处理数据是以数据行来进行处理的,一条数据行称为一条记录,以换行符结束。[/size][/color] [b][color=black][size=10.5pt]3.1.1 [/size][/color][/b][b][color=black][size=10.5pt]记录[/size][/color][/b][color=black][size=10.5pt][font=Arial]●[/font] [/size][/color][color=black][size=10.5pt]记录分隔符[/size][/color]
[color=black][size=10.5pt] 默认情况下,输入和输出记录的分隔符(数据行分隔符)都是回车符(回车换行符[/size][/color][color=black][size=10.5pt] Enter[/size][/color][color=black][size=10.5pt]),分别保存在[/size][/color][color=black][size=10.5pt]awk[/size][/color][color=black][size=10.5pt]的内置变量[/size][/color][b][color=black][size=10.5pt]ORS[/size][/color][/b][color=black][size=10.5pt]和[/size][/color][b][color=black][size=10.5pt]RS[/size][/color][/b][color=black][size=10.5pt]中。[/size][/color]
[color=black][size=10.5pt][font=Arial]● [/font] [/size][/color][color=black][size=10.5pt]变量[/size][/color][b][color=black][size=10.5pt]$0[/size][/color][/b]
[color=black][size=10.5pt] Awk[/size][/color][color=black][size=10.5pt]用[/size][/color][b][color=black][size=10.5pt]$0[/size][/color][/b][color=black][size=10.5pt]来保存整条记录(当每读入一条记录时,[/size][/color][b][color=black][size=10.5pt]$0[/size][/color][/b][color=black][size=10.5pt]的值都会给新的记录替换,所以[/size][/color][b][color=black][size=10.5pt]NF[/size][/color][/b][color=black][size=10.5pt]值,也就是字段的数目值也有可能会改变。)。换行符的值保存在[/size][/color][color=black][size=10.5pt]awk[/size][/color][color=black][size=10.5pt]的内置变量[/size][/color][b][color=black][size=10.5pt]RS[/size][/color][/b][color=black][size=10.5pt]中,默认值为回车。[/size][/color]
[/align][align=left][table][tr][td=1,1,707][b][color=black][size=10.5pt]范例[/size][/color][/b][b][color=black][size=10.5pt] 3-1[/size][/color][/b]
[color=black][size=10.5pt][root@localhost script]# [b]awk[/b][b] '{print $0}' passwd[/b][/size][/color]
[color=black][size=10.5pt]root:x:0:0:root:/root:/bin/bash[/size][/color]
[color=black][size=10.5pt]bin:x:1:1:bin:/bin:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]daemon:x:2:2:daemon:/sbin:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]adm:x:3:4:adm:/var/adm:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]sync:x:5:0:sync:/sbin:/bin/sync[/size][/color]
[color=black][size=10.5pt]… … …[/size][/color]
[b][color=black][size=10.5pt]范例[/size][/color][/b][b][color=black][size=10.5pt] 3-2[/size][/color][/b]
[color=black][size=10.5pt][root@localhost script]# [b]awk[/b][b] '{print}' passwd[/b][/size][/color]
[color=black][size=10.5pt]root:x:0:0:root:/root:/bin/bash[/size][/color]
[color=black][size=10.5pt]bin:x:1:1:bin:/bin:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]daemon:x:2:2:daemon:/sbin:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]adm:x:3:4:adm:/var/adm:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]… … …[/size][/color]
[color=black][size=10.5pt]### [/size][/color][color=black][size=10.5pt]解析[/size][/color][color=black][size=10.5pt] ###[/size][/color]
[color=black][size=10.5pt]打印出[/size][/color][color=black][size=10.5pt]awk[/size][/color][color=black][size=10.5pt]内置变量[/size][/color][b][color=black][size=10.5pt]$0[/size][/color][/b][color=black][size=10.5pt]的值,也就是把所有记录都显示出来。[/size][/color]
[/td][/tr][/table][/align][align=left]
[color=black][size=10.5pt] ● [/size][/color][color=black][size=10.5pt]变量[/size][/color][b][color=black][size=10.5pt]NR[/size][/color][/b]
[color=black][size=10.5pt]每条记录号都保存在[/size][/color][color=black][size=10.5pt]awk[/size][/color][color=black][size=10.5pt]内置变量[/size][/color][b][color=black][size=10.5pt]NR[/size][/color][/b][color=black][size=10.5pt]中,每处理完一条记录,[/size][/color][b][color=black][size=10.5pt]NR[/size][/color][/b][color=black][size=10.5pt]的值都会加[/size][/color][color=black][size=10.5pt]1[/size][/color][color=black][size=10.5pt]。[/size][/color]
[/align][align=left][table][tr][td=1,1,707][b][color=black][size=10.5pt]范例[/size][/color][/b][b][color=black][size=10.5pt] 3-3[/size][/color][/b]
[color=black][size=10.5pt][root@localhost script]# [b]awk[/b][b] '{print NR,$0}' passwd[/b][/size][/color]
[color=black][size=10.5pt]1 root:x:0:0:root:/root:/bin/bash[/size][/color]
[color=black][size=10.5pt]2 bin:x:1:1:bin:/bin:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]3 daemon:x:2:2:daemon:/sbin:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]4 adm:x:3:4:adm:/var/adm:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin[/size][/color]
[color=black][size=10.5pt]… … …[/size][/color]
[color=black][size=10.5pt]### [/size][/color][color=black][size=10.5pt]解析[/size][/color][color=black][size=10.5pt] ###[/size][/color]
[color=black][size=10.5pt]打印出[/size][/color][color=black][size=10.5pt]awk[/size][/color][color=black][size=10.5pt]内置变量[/size][/color][b][color=black][size=10.5pt]NR[/size][/color][/b][color=black][size=10.5pt]和[/size][/color][b][color=black][size=10.5pt]$0[/size][/color][/b][color=black][size=10.5pt]的值,也就是把所有记录和记录号都显示出来。[/size][/color]
[/td][/tr][/table][/align]
页:
[1]
