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