awk中NF,NR的含义

awk中NF和NR的意义,其实你已经知道NF和NR的意义了,NF代表的是一个文本文件中一行(一条记录)中的字段个数,NR代表的是这个文本文件的行数(记录数)。在编程时特别是在数据处理时经常用到。建议你看看有关awk编程方面的资料,这可是一个功能非常强大的工具。

看个例子:

  1. cal 9 2003
  2. September 2003            # NR=1;NF=2
  3. Su Mo Tu We Th Fr Sa         # NR=2;NF=7
  4. 1  2  3  4  5  6         # NR=3;NF=6
  5. 7  8  9 10 11 12 13         # NR=4;NF=7
  6. 14 15 16 17 18 19 20         # NR=5;NF=7
  7. 21 22 23 24 25 26 27         # NR=6;NF=7
  8. 28 29 30                     # NR=7;NF=3

复制代码

NR是指awk正在处理的记录位于文件中的位置(行号)
NF是指awk正在处理的记录包含几个域(字段),这于域分隔符有关,默认为空

时间: 2024-10-16 10:39:38

awk中NF,NR的含义的相关文章

awk中的NR FNR

shell编程中,awk简直就是一把利器,你能够把它看成shell的一部分,也能够看成一种单独的语言,功能十分强大.今天先来说一说NR与FNR 先准备两个文件: 1.txt,内容为: user password wolf 123456 zys 123 2.txt 内容为: id user 0001 wolf 0002 xiaozhai 事实上在处理单个文件时,NR与FNR都一样.表示当前读取的行号,如运行awk '{print NR}' 1.txt 和运行 awk '{print FNR}' 1

awk中NR和FNR的区别

NR  The total number of input records seen so far. FNR The input record number in the current input file. 简单翻译: NR  表示读到的文件行数 FNR 表示读到的当前文件行数 awk中NR和FNR的区别

awk中的变量

awk中的变量定义非常简单,只需要给出一个变量名并且赋予适当的值即可. awk中的常规变量分为两种类型:字符串和数值.无需指定变量类型,awk会根据变量所处的环境自动判断.如果没有指定值,数值类型的变量默认等于0,字符串类型的变量默认为空. awk中的系统内置变量总结如下,有一点要事先说明:awk说明中,记录表示一个样本,字段表示特征. 变量 说明 $0 记录变量,表示当前正在处理的记录,整条记录作为一个字符串 $n 字段变量,n可以为1,2,...表示第几个字段(特征) NF 整数值,表示当前

awk中next和getline的区别

先看下面的几行代码 [[email protected] ~]# cat a 1 2 3 4 5 6 7 8 [[email protected] ~]# awk '{print "$1="$1;getline;print "$2="$2}' a $1=1 $2=4 $1=5 $2=8 [[email protected] ~]# awk '{print "$1="$1;next;print "$2="$2}' a $1=1

awk中使用shell变量

其实在awk里,是不能直接使用shell变量的 方法是:awk -v 选项让awk 里使用shell变量 TIME=60 awk -v time="$TIME" 'BEGIN{FS="|"} {if ($7>time) print $2 }' 这样要注意:在awk里,time不能加$符号. 网上说如下方法都可行: 一:"'$var'" 这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如: var="test&quo

awk中匹配shell变量字符

遇到问题: 现在有两个脚本,我想 将file1中的内容按file2来匹配 [[email protected] home]# cat file1 3-1-1 POTV=1,POTA=0,POTP=2 1-4-76 POTV=1,POTA=0,POTP=1 2-1-2 POTV=1,POTA=1,POTP=1 3-1-4 POTV=1,POTA=1,POTP=2 4-1-5 POTV=1,POTA=1,POTP=2 7-1-2 POTV=1,POTA=1,POTP=2 3-1-10 POTV=1,

awk中可以使用system来执行复杂的shell命令

在awk中可以直接执行shell命令. [plain] view plain copy [email protected]:~$ touch a [email protected]:~$ touch b [email protected]:~$ cat a.txt a b [email protected]:~$ awk '{cmd="rm "$0;system(cmd)}' a.txt [email protected]:~$ ls a.txt      dd            

android权限--android开发中的权限及含义(上)

android权限--android开发中的权限及含义(上) android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户 android.permission.FLASHLIGHT 访问闪光灯,android开发网提示HTC Dream不包含闪光灯 android.pe

在awk中通过system调用sql语句来说明引号的使用

一个实际应用例子: 在awk中,通过system调用连接数据库并作select操作,select语句中where条件来自于一个文件(file)的第一个域($1). $ cat file ... 1001 1002 1003 1004 ... 1. 用awk实现: awk '{system("mysql -u root -proot mydatabase -Bse \"select id,name from tables where id=""\047"$1