awk 内置变量

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

OFS 输出域分隔符

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

RS 控制记录分隔符

ORS 输出记录分隔符

实例:

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

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

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

2.OFS 输出域分隔符。

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

文件内容如下

[[email protected] ~]# cat abc
123  456
abc  bcd
aaa  bbb

[[email protected] ~]# awk ‘BEGIN{OFS=","}{print $1,$2}‘ abc
123,456
abc,bcd
aaa,bbb

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

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

打印出每行有几列

[[email protected] ~]# awk ‘{print NF}‘ abc
2
2
2

4.NR 已读的记录数

awk 读了几行内容

[[email protected] ~]# awk ‘{print NR}‘ abc
1
2
3

5、ORS 输出记录分隔符

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

[[email protected] ~]# cat abc
123
abc
aaa

[[email protected] ~]# awk ‘BEGIN{ORS=","}{print $0}‘ abc
123,abc,aaa,[[email protected] ~]#

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

时间: 2024-08-05 09:19:12

awk 内置变量的相关文章

Linux基础教程 linux awk内置变量使用介绍

awk是个优秀文本处理工具,可以说是一门程序设计语言.下面是兄弟连Linux培训 给大家介绍的awk内置变量. 一.内置变量表 属性 说明 $0 当前记录(作为单个变量) $1~$n 当前记录的第n个字段,字段间由FS分隔 FS 输入字段分隔符 默认是空格 NF 当前记录中的字段个数,就是有多少列 NR 已经读出的记录数,就是行号,从1开始 RS 输入的记录他隔符默 认为换行符 OFS 输出字段分隔符 默认也是空格 ORS 输出的记录分隔符,默认为换行符 ARGC 命令行参数个数 ARGV 命令

shell文本过滤编程(四):awk内置变量及一般变量

[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] awk有许多内置变量用来设置环境信息.这些变量可以被改变.下面是awk内置变量: ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME  a w k浏览的文件名 FNR 浏览文件的记录数 FS 设置输入域分隔符,等价于命令行 - F选项 NF 浏览记录的域个数 NR 已读的记录数 OFS 输出域分隔符

awk内置变量 awk有许多内置变量用来设置环境信息,这些变量可以被改变,下面给出了最常用的一些变量。

ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME awk浏览的文件名 FNR 浏览文件的记录数 FS 设置输入域分隔符,等价于命令行 -F选项 NF 浏览记录的域的个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符 此外,$0变量是指整条记录.$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推. 统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行

awk内置变量的应用

现在我们来看一些例子,它们以变量NR开头.将前面计算平均成绩的脚本中的print语句修改为: $ cat grades john 85 92 78 94 88 andrea 89 90 75 90 86 jasper 84 88 80 92 84 $ cat grades.awk #求5个成绩的平均值 { total = $2 + $3 + $4 + $5 + $6 avg = total / 5 print NR ".", $1 , avg } 运行修改过的脚本输出如下结果: $ a

AWK内置变量

$0 当前记录(作为单个变量) $1~$n 当前记录的第n个字段,字段间由FS分隔 FS 输入字段分隔符 默认是空格 NF 当前记录中的字段个数,就是有多少列 NR 已经读出的记录数,就是行号,从1开始 RS 输入的记录他隔符默 认为换行符 OFS 输出字段分隔符 默认也是空格 ORS 输出的记录分隔符,默认为换行符 ARGC 命令行参数个数 ARGV 命令行参数数组 FILENAME 当前输入文件的名字 IGNORECASE 如果为真,则进行忽略大小写的匹配 ARGIND 当前被处理文件的AR

Linux高级文本处理之gawk内置变量(一)

一.FS –输入字段分隔符 FS是awk内置变量,用来制定行分隔符,功能能-F一样,区别在于FS只能用在BEGIN语句块当中,命令格式如下: BEGIN{FS="SEPARATOR"} 实例1: [[email protected] ~]# awk 'BEGIN { FS=","; print "---------------------------\nName\tTitle\n------------------------"} {print 

【译】 AWK教程指南 附录D-AWK的内置变量

因内置变量的个数不多,此处按其相关性分类说明,并未按其字母顺序排列. ARGC ARGC表示命令行上除了选项 -F, -v, -f 及其所对应的参数之外的所有参数的个数.若将"awk程序"直接写在命令列上,则 ARGC 亦不将该"程序部分"列入计算. ARGV ARGV数组用以记录命令列上的参数. 例:执行下列命令 $ awk -F\t -v a=8 -f prg.awk file1.dat file2.dat 或 $ awk -F\t -v a=8 '{ prin

awk学习之理解内置变量

ENVIRON:使用这个内置变量可以查看当前系统下的环境变量,例如BEGIN  {print ENVIRON["HOME"]}. FILENAME:当前正被处理的文件名 例END {print FILENAME}. NF:被处理的文件每行(每一行称为一个记录),分成了几个域(列),$0表示整个记录,每个域被标记为$1,$2......$n. NR:用在block中间段时,标志正被处理的记录序号(行号),用在END区域时,代表输入文件的总记录. FNR:当处理多个文件时,NR值会持续增加

linux awk 内置函数详细介绍(实例)

这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x ) 返回 y/x 的反正切. cos( x ) 返回 x 的余弦:x 是弧度. sin( x ) 返回 x 的正弦:x 是弧度. exp( x ) 返回 x 幂函数. log( x ) 返回 x 的自然对数. sqrt( x ) 返回 x 平方根. int( x ) 返回 x 的截断至整数的