免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5709 | 回复: 6
打印 上一主题 下一主题

请问unix中的NF和NR确切含义到底是什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-28 11:26 |只看该作者 |倒序浏览
用print直接打印出来的NF和NR是一组数字,分别是每行的字符串数目和行数。但是在具体的编程中,两者似乎都是被作为一个特定的值来进行使用的,我实在搞不明白到底是怎么确定NF和NR的值,请各位大侠指点迷津。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-09-28 11:32 |只看该作者

请问unix中的NF和NR确切含义到底是什么?

[quote]原帖由 "wuwu7456"]用print直接打印出来的NF和NR是一组数字,分别是每行的字符串数目和行数。但是在具体的编程中,两者似乎都是被作为一个特定的值来进行使用的,我实在搞不明白到底是怎么确定NF和NR的值,请各位大侠指点迷津。[/quote 发表:
     
首先你的提法有问题,NF和NR是awk的内置变量,不是unix的东西。
请你阅读下面的资料,看看他们的含义和用法:
http://www.chinaunix.net/forum/viewtopic.php?t=128644

论坛徽章:
0
3 [报告]
发表于 2003-09-28 11:43 |只看该作者

请问unix中的NF和NR确切含义到底是什么?

谢谢,我是想编一个确定某一天是星期几的脚本,里面NF和NR的概念似乎很混淆。请admirer指点一下。

论坛徽章:
0
4 [报告]
发表于 2003-09-28 11:51 |只看该作者

请问unix中的NF和NR确切含义到底是什么?

[quote]原帖由 "wuwu7456"]用print直接打印出来的NF和NR是一组数字,分别是每行的字符串数目和行数。但是在具体的编程中,两者似乎都是被作为一个特定的值来进行使用的,我实在搞不明白到底是怎么确定NF和NR的值,请各位大侠指点迷津。[/quote 发表:
   
我想你一定说的是awk中NF和NR的意义,其实你已经知道NF和NR的意义了,NF代表的是一个文本文件中一行(一条记录)中的字段个数,NR代表的是这个文本文件的行数(记录数)。在编程时特别是在数据处理时经常用到。建议你看看有关awk编程方面的资料,这可是一个功能非常强大的工具。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-09-28 11:51 |只看该作者

请问unix中的NF和NR确切含义到底是什么?

看个例子:
  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正在处理的记录包含几个域(字段),这于域分隔符有关,默认为空

论坛徽章:
0
6 [报告]
发表于 2003-09-28 11:59 |只看该作者

请问unix中的NF和NR确切含义到底是什么?

get_whatdays()
{
year=`expr substr  $1 1 4`
month=`expr substr  $1 5 2`
day=`expr substr  $1 7 2`
b=`cal $month $year|wc -l`
b=`expr $b - 1`
a=`cal  $month  $year |awk -v day=$day -v jl=$b '{for i=1;i<=NF;i++){if($i==day){if (NR==jl){print $i-1}else{print 7-NF+i-1}}}}'`
echo $a
}
比如这样的代码,09-2003的28 29 30号是星期几就不能正确显示。

论坛徽章:
0
7 [报告]
发表于 2003-09-28 12:41 |只看该作者

请问unix中的NF和NR确切含义到底是什么?

原帖由 "wuwu7456" 发表:
get_whatdays()
{
year=`expr substr  $1 1 4`
month=`expr substr  $1 5 2`
day=`expr substr  $1 7 2`
b=`cal $month $year|wc -l`
b=`expr $b - 1`
a=`cal  $month  $year |awk -v day=$day -v jl=$b '{fo..........


只有一句写错了 print $i-1改为print i-1就可以了。:P
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP