免费注册 查看新帖 |

Chinaunix

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

[ SHELL 水平测试 ][ AWK 篇 ]  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-01 15:00 |只看该作者 |倒序浏览
按:SHELL 水平测试系列并非覆盖 SHELL 的所有方面,而是挑选一些题目以引发思考,
以管中窥豹的方式达到检验水平的目的.

[ SHELL 水平测试 ][ OVERVIEW 篇 ]
http://bbs.chinaunix.net/forum/viewtopic.php?t=476260&show_type=&sid=e90e3c748f1c10920ca09d71a81f7461

[ SHELL 水平测试 ][ SED 篇 ]
http://bbs.chinaunix.net/forum/viewtopic.php?t=476269&show_type=&sid=e90e3c748f1c10920ca09d71a81f7461

[ SHELL 水平测试 ][ AWK 篇 ]
http://bbs.chinaunix.net/forum/viewtopic.php?t=476271&show_type=&sid=e90e3c748f1c10920ca09d71a81f7461

[ SHELL 水平测试 ][ REGEX 篇 ]
http://bbs.chinaunix.net/forum/viewtopic.php?p=3143773#3143773



注: 很多题目在不同的 awk 中实现不同, 请注明每一种 awk 的方法.


[ SHELL 水平测试 ][ AWK 篇 ]



1. awk, oawk, nawk, gawk, mawk 有什么区别?

2. 在一个 awk 文件中,  第一行可以如下吗?

#! /bin/awk -F: -f


3. awk -F"" 与 awk -F "" 有区别吗?

4. 可以这样设置 FS 吗?  

   FS = "[ \t]+\|[ \t]+"


5. gawk 有一个扩展表达式与其他 GNU 工具不同, 是哪个, 为什么?

6. 那两种方法可以实现大小写无关匹配?

7. 下列两句有何区别?

awk '$0 ~ "[ \t\n]"'
awk '$0 ~ /[ \t\n]/'


8. FS=" " 和 FS=" +" 有何区别?

9. 如何将每一个字符作为一个 field ?

10. 如何将整个文件作为一个 field ?

11. RS="" 与 RS="\n\n+" 有何区别?

12. NR 和 FNR 有何区别?

13. getline < "file" 改变那些 builtin 变量?

14. 如何不打印最后一个 field? (不用循环)

15. $1 ~ /aaa/ 与 /aaa/ ~ $1 有何区别?

16. a = /a/ 是什么意思?

17. awk 中的 array 可以排序吗?

18. 如何将 awk 中得到的值赋给 shell 变量.

19. 如何模拟二维数组?

20. 你的 awk 数组最多可能的单元是多少?有限制没有?

21. 你的 awk 中 field number, record length 及 file size 有何限制?

22. awk 中如何删除 array 及 关闭管道?

23. 如何完成 rev 功能?

24. 如何在 awk 中使用 coprocess?

25. 你写过 100 行以上的 awk 程序吗? 

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
2 [报告]
发表于 2005-01-01 16:31 |只看该作者

[ SHELL 水平测试 ][ AWK 篇 ]

超眩
先回答一个
25. 你写过 100 行以上的 awk 程序吗?
  1. 没写过也没读过
复制代码

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2005-01-01 16:43 |只看该作者

[ SHELL 水平测试 ][ AWK 篇 ]

23 ,如何完成 rev 功能?

  1. echo string|awk '{l="";for(i=length($0);i>0;i--)printf "%c",substr($0,i,1);print "";}'
复制代码

P.S:论坛里有~

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
4 [报告]
发表于 2005-01-02 11:11 |只看该作者

[ SHELL 水平测试 ][ AWK 篇 ]

14. 如何不打印最后一个 field? (不用循环)
  1. awk 'NF--' filename
复制代码

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
5 [报告]
发表于 2005-01-02 11:20 |只看该作者

[ SHELL 水平测试 ][ AWK 篇 ]

debug
14. 如何不打印最后一个 field? (不用循环)
  1. awk 'NF{NF--;print}' filename
复制代码

论坛徽章:
0
6 [报告]
发表于 2005-01-02 11:24 |只看该作者

[ SHELL 水平测试 ][ AWK 篇 ]

[quote]原帖由 "r2007"]awk 'NF--' filename[/quote 发表:


It's OK for gawk, how about other awks ?

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
7 [报告]
发表于 2005-01-02 11:41 |只看该作者

[ SHELL 水平测试 ][ AWK 篇 ]

其他的awk没用过。
  1. awk '$NF=""' file
复制代码

这样如何?猜测可能会多一个域分割符。

论坛徽章:
0
8 [报告]
发表于 2005-01-02 12:09 |只看该作者

[ SHELL 水平测试 ][ AWK 篇 ]

[quote]原帖由 "r2007"]这样如何?猜测可能会多一个域分割符。[/quote 发表:


u r right.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP