免费注册 查看新帖 |

Chinaunix

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

关于awk里面的begin和end疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-04 00:03 |只看该作者 |倒序浏览
看了很多书都说begin其中一个很重要作用是awk读取输入文件之前可以给内置变量赋值,然后再读取输入文件,这样就可以避免了先按照默认分隔符来操作第一行,然后从文件第二行开始再用新的分隔符来执行

但我用下面语句同样可以实现从第一行就用新的分隔符":"来输出,不知道begin的作用在哪里

[root@test-1 ~]# awk -F: '$3<5{print $1 "\t" $3}' /etc/passwd
root    0
bin     1
daemon  2
adm     3
lp      4

这样就不需要用begin写成下面这样的麻烦形式:
[root@test-1 ~]# awk  'BEGIN{FS=":"}$3<5{print $1 "\t" $3}' /etc/passwd
root    0
bin     1
daemon  2
adm     3
lp      4

论坛徽章:
0
2 [报告]
发表于 2011-11-04 08:45 |只看该作者
本帖最后由 mxiaohua1768 于 2011-11-04 08:46 编辑

忘了~

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
3 [报告]
发表于 2011-11-04 08:50 |只看该作者

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
4 [报告]
发表于 2011-11-04 09:32 |只看该作者
不同的方式而已,何必纠结这个了

论坛徽章:
0
5 [报告]
发表于 2011-11-04 17:13 |只看该作者
好的,谢谢大家

论坛徽章:
0
6 [报告]
发表于 2011-11-05 15:19 |只看该作者
就个人感觉,使用begin和在命令行使用-F参数来修改分隔符,效果是一样的,只是形式区别
但考虑到begin中可以重新赋值的变量是不受限制,而命令行参数只有部分变量提供接口,且
使用begin方式,从脚本自身来说更完整,意思表达的更明确。所以我更倾向于使用begin来完成
类似的工作
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP