首页 > 代码库 > awk 内置变量

awk 内置变量

awk 内置变量

 

FS 设置输入域分隔符,等价于命令行 -F选项

OFS 输出域分隔符


NF 浏览记录的域的个数
NR 已读的记录数


RS 控制记录分隔符

ORS 输出记录分隔符

 

实例:

 

1. FS设置域分隔符 等于-F。

过滤出了/etc/passwd 文件中的第一列

[root@centos-1 ~]# awk ‘BEGIN{FS=":"}{print $1}‘ /etc/passwd
root
bin
daemon
adm
lp
sync

 

2.OFS 输出域分隔符。

  我们可以改变文件内容的分割符号,并且打印出来

文件内容如下

[root@centos-1 ~]# cat abc
123  456
abc  bcd
aaa  bbb

 

[root@centos-1 ~]# awk ‘BEGIN{OFS=","}{print $1,$2}‘ abc
123,456
abc,bcd
aaa,bbb

注意:这种情况需要多列,单列是不行的

 

3.NF 浏览记录的域的个数

打印出每行有几列

[root@centos-1 ~]# awk ‘{print NF}‘ abc
2
2
2

 

4.NR 已读的记录数

awk 读了几行内容

[root@centos-1 ~]# awk ‘{print NR}‘ abc
1
2
3

 

 

 

 

5、ORS 输出记录分隔符

awk规定,对于文本文件,默认情况下,一条记录对应一行,即记录之间的默认分隔符是换行符;而一条记录又可以分为多个字段,默认字段分隔符为空格

[root@centos-1 ~]# cat abc
123
abc
aaa

[root@centos-1 ~]# awk ‘BEGIN{ORS=","}{print $0}‘ abc
123,abc,aaa,[root@centos-1 ~]#

 

所以我们可以在编辑某些文件时,可以让文件内容横排显示,并且加上一定的分割符号

 

awk 内置变量