等待攻戈多——awk25问……

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
jioyo源
帖子: 3476
注册时间: 2008-10-08 13:48

等待攻戈多——awk25问……

#1

帖子 jioyo源 » 2009-05-03 10:17

这是从别的论坛发现的25个问题,发现只有题没有答案,太邪恶了……会都帮解决下……
1. awk, oawk, nawk, gawk, mawk 有什么区别?

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

#! /bin/awk -F: -f


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

4. 可以这样设置 IFS 吗?

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


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

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

答:设置IGNORECASE 或者将字符串转成大写再匹配

7. 下列两句有何区别?

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


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

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

答:在某些awk上面可以用FS=""; 如果不支持的话就要用for(i = 1; i < length($0); i++) {$i=substr($0, i, 1);}

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

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

12. NR 和 FNR 有何区别?

答:NR:已读取的行数 FNR:当前文件已读取的行数 

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

答:$n (n代表0-NF) , NF

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

答:$NF=""

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

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

答:将a的值赋为match(/a/, $0);

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

答:可以,但是排序函数要自己写(百度搜索awk排序)

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

答:shell_var=`awk '{...}'`

19. 如何模拟二维数组?

答:awk二维数组只是用特殊分隔符SUBSEP分隔下标,其实是没有二维数组的

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

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

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

答:delete array_name; close(pipe_name);

23. 如何完成 rev 功能?

24. 如何在 awk 中使用 coprocess?

答:gawk里面的|&

25. 你写过 100 行以上的 awk 程序吗?
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
头像
jioyo源
帖子: 3476
注册时间: 2008-10-08 13:48

Re: 等待攻戈多——awk25问……

#2

帖子 jioyo源 » 2009-05-03 10:30

自己先项一个……
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 等待攻戈多——awk25问……

#3

帖子 bones7456 » 2009-05-04 12:58

你是想问呢?还是写教程?不明白了
关注我的blog: ε==3
头像
jioyo源
帖子: 3476
注册时间: 2008-10-08 13:48

Re: 等待攻戈多——awk25问……

#4

帖子 jioyo源 » 2009-05-04 17:32

bones7456 写了:你是想问呢?还是写教程?不明白了
:em06当然问了???
是请教……
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
头像
hellojinjie
帖子: 1150
注册时间: 2007-09-14 21:03
来自: 浙江

Re: 等待攻戈多——awk25问……

#5

帖子 hellojinjie » 2009-05-04 18:52

要找本书来仔细看才能回答阿
Say hello to everyday!
头像
jioyo源
帖子: 3476
注册时间: 2008-10-08 13:48

Re: 等待攻戈多——awk25问……

#6

帖子 jioyo源 » 2009-05-09 10:06

:em20 米人帮我……
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 等待攻戈多——awk25问……

#7

帖子 tusooa » 2009-08-19 20:29

代码: 全选

i=0
while :
do
    i=$((i + 1))
    echo "$i : Unknow"
    if [ "$i" = "25" ] ; then break ; fi
done
:em04 :em02

代码: 全选

] ls -ld //
头像
bones7456
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
联系:

Re: 等待攻戈多——awk25问……

#8

帖子 bones7456 » 2009-08-20 17:23

有你这么问的吗?
关注我的blog: ε==3
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: 等待攻戈多——awk25问……

#9

帖子 c\nc » 2009-08-21 9:26

先找个容易的?
23
awk '{for(i=length($0);i>0;i--){printf substr($0,i,1)};print ""}'
头像
jioyo源
帖子: 3476
注册时间: 2008-10-08 13:48

Re: 等待攻戈多——awk25问……

#10

帖子 jioyo源 » 2009-08-22 7:57

bones7456 写了:有你这么问的吗?
:em20 问题是我从别的地方弄的,只有问题 没有答案,所以请教大家……是不是我的语气有什么问题 , 如果是我立马改……
--------------------------------------
论坛精华贴全集:http://forum.ubuntu.org.cn/viewtopic.php?f=48&t=199845
book:http://forum.ubuntu.org.cn/viewtopic.php?f=21&t=198286
回复