免费注册 查看新帖 |

Chinaunix

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

请帮我解释一下这句awk脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-28 10:18 |只看该作者 |倒序浏览
在CU上面awk 看到一个SHELL脚本的实例/path/to/1/domain/abc.com转换成/path/to/1/domain
用的方法awk 'BEGIN{FS=OFS="/"}NF--' urfile
不是很理解NF--这里面的意思是什么。请帮我解释一下

论坛徽章:
0
2 [报告]
发表于 2008-11-28 10:20 |只看该作者
NF-- 就是把字段数减一

最后就只输出NF-1个字段

论坛徽章:
0
3 [报告]
发表于 2008-11-28 10:28 |只看该作者
NF就是按照指定字符分出来的域总数

论坛徽章:
0
4 [报告]
发表于 2008-11-28 10:37 |只看该作者
不清楚这个,也在学习shell 编程!

论坛徽章:
0
5 [报告]
发表于 2008-11-28 15:56 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2008-11-28 20:38 |只看该作者
awk 'BEGIN{FS=OFS="/"} NF--' urfile  等于
awk 'BEGIN{FS=OFS="/"} NF--'{print $0} urfile

假如一行有5个域,NF就等于5,NF--后,NF就等于4,而“NF--”的值也变为4,因为4非0,所以执行默认的动作{print $0},即打印前4个域(因为此时该行的NF变为4了)

依据以上,当文件urfile中存在空行(即NF=0)时,NF--后NF将是负数,所以以上命令肯定会报错,可以试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP