免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lightspeed
打印 上一主题 下一主题

[学习共享] [ SHELL 综合水平测试 ] [复制链接]

论坛徽章:
0
61 [报告]
发表于 2005-09-14 12:47 |只看该作者

[ SHELL 综合水平测试 ]

看完此贴,我决定闭关了,唉~ 不会的太多了 不过对工作来说,我所会的shell是够了。。

论坛徽章:
0
62 [报告]
发表于 2005-09-21 09:48 |只看该作者

[ SHELL 综合水平测试 ]

原帖由 "寂寞烈火" 发表:
做一道题  
引用:

7. 将数据文件中的每个词的第一个字母变成大写. (难度: 2 - 4)

引用:

/home/lee#cat txt
linux is long live!!!
i am a cuer


代码:
/home/lee#awk '{for(i=1;i<=NF;i++)printf toupper(substr($i,0,1))substr($i,2,length($i))" ";printf "\n"}' txt
Linux Is Long Live!!!
I Am A Cuer


如果文件里面的单词前面有符号就不灵了,太机械化了
比如:
#cat txt
linux shell is "very good!"

如果用
awk '{for(i=1;i<=NF;i++)printf toupper(substr($i,0,1))substr($i,2,length($i))" ";printf "\n"}'

的结果就会是
Linux Shell Is "very Good!"

如何能让shell判断每个空格后面的是字母而不是符号呢?遇到符号后,一直检索这个字段,直到遇到下一个空格为止,进行下一个单词的判断?

论坛徽章:
0
63 [报告]
发表于 2005-09-21 10:05 |只看该作者

[ SHELL 综合水平测试 ]

原帖由 "panlm" 发表:
7. 将数据文件中的每个词的第一个字母变成大写. (难度: 2 - 4)

awk '{first=substr($0,1,1); sub(/^./,toupper(first),$0); print $0}' yourfile




suse2:/vrts # awk '{first=substr($0,1,1); sub(/^./,toupper(first),$0); print $0}' sgztest
111
Sgzlit
Linux is " good very much! @@"
World
Hello
Beijing
Good

只把每一行的第一个单词的首字母变成大写了:)

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
64 [报告]
发表于 2005-11-06 03:27 |只看该作者
原帖由 sgzlit 于 2005-9-21 09:48 发表


如果文件里面的单词前面有符号就不灵了,太机械化了
比如:
#cat txt
linux shell is "very good!"

如果用
awk '{for(i=1;i<=NF;i++)printf toupper(substr($i,0,1))substr($i,2,length ...

加了一个判断试一试吧,

  1. awk '{gsub(/,/," & ")}{for(i=1;i<=NF;i++)if($i!~/^[^a-z]/)printf toupper(substr($i,0,1))substr($i,2,length($i))" ";else printf substr($i,0,1)toupper(substr($i,2,1))substr($i,3,length($i))" ";printf "\n"}' txt
复制代码

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
65 [报告]
发表于 2006-01-03 22:24 |只看该作者
原帖由 n_nf 于 2006-1-3 19:04 发表
偶是来学习滴~~~
到底有多少种SHELL,高人给说下撒~

shell种类很多很多,不过常用的就是那么几种:
bsh
bash
ksh/pdksh
csh/tcsh
zsh

论坛徽章:
0
66 [报告]
发表于 2006-01-10 05:22 |只看该作者
"3. 为什么当低手怯怯地抛出一个问题, 高手快速地给出了漂亮的解答, 却往往最后并没有解决低手的问题?"

“一个傻瓜提出来的问题是一百个聪明人都无法回答的。” -- 列宁。  苏联电影《列宁在1918》:)

不必当真哦!

John

论坛徽章:
0
67 [报告]
发表于 2006-01-10 06:29 |只看该作者
原帖由 networkiller 于 2006-1-7 10:31 发表
对了,DX们或者斑竹能不能把这个问题集的答案给整理出来啊,也算是对我这种低水平的一种贡献啊:)))))


Try it  && You will be a SHELL master.

论坛徽章:
0
68 [报告]
发表于 2006-03-05 03:12 |只看该作者

有些题目难得变态了

那个提取html里面table的东西难得有些变态。

table还能嵌套table,这个parser就是用Perl,Python写也有一定的难度,何况是shell

论坛徽章:
0
69 [报告]
发表于 2006-04-06 17:25 |只看该作者
20. 如何保证 shell 程序只有单一 instance 运行? (有难度, 绝非一个 ps 命令可以搞定)

使用lockf 命令。

man lockf: lockf -- execute a command while holding a file lock

例:如果要执行 /etc/run.sh ,

/usr/bin/lockf -t 0 /tmp/run.lock /etc/run.sh

例子的含义是:
1、/usr/bin/lockf -t 0 /tmp/run.lock /etc/run.sh 开始运行时首先检查 /tmp/ 下是否有run.lock 文件,是,不执行/etc/run.sh,退出,否,生成/tmp/run.lock 文件,执行/etc/run.sh

2、当/etc/run.sh 执行完成后,lockf 删除/tmp/run.lock

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
70 [报告]
发表于 2006-09-07 11:26 |只看该作者
原帖由 golotv 于 2006-9-5 22:34 发表
想知道第17题的解~,忘高手指点.


哪一个第17?
多行注释?

:<<##########
com1
com2
com3
com4
com5
com6
com7
..........
##########
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP