当前位置: 技术问答>linux和unix
考试题,我都做错了~ 请教各位!
来源: 互联网 发布时间:2015-06-23
本文导语: 晚上Linux考试,最后两个shell编程题都做错了,郁闷! 列出题目,请教一下各位!! 1 编写一个shell程序,他能够将指定目录及子目录中的包含字符串root的文本文件找出来。 (注意:是文件中的字符串,不是文件...
晚上Linux考试,最后两个shell编程题都做错了,郁闷!
列出题目,请教一下各位!!
1 编写一个shell程序,他能够将指定目录及子目录中的包含字符串root的文本文件找出来。 (注意:是文件中的字符串,不是文件名中的,我就错在这里!)
2 往你的主目录下随便拷5个文件,用mv将文件名都改为大写,现请编一shell程序,将这些文件名都变成小写。
列出题目,请教一下各位!!
1 编写一个shell程序,他能够将指定目录及子目录中的包含字符串root的文本文件找出来。 (注意:是文件中的字符串,不是文件名中的,我就错在这里!)
2 往你的主目录下随便拷5个文件,用mv将文件名都改为大写,现请编一shell程序,将这些文件名都变成小写。
|
如果不是特殊情况需要精确...
1.fgrep -r root *|awk -F":" '{print $1}'|uniq
如果文件名中有':'会有问题.
2.ls -1|awk '/[a-z]/{a=toupper($0);print "mv "$0" "a}'|sh
可能也有问题..
我是新手,多多指教
1.fgrep -r root *|awk -F":" '{print $1}'|uniq
如果文件名中有':'会有问题.
2.ls -1|awk '/[a-z]/{a=toupper($0);print "mv "$0" "a}'|sh
可能也有问题..
我是新手,多多指教
|
1. find dir -exec grep -sl root {} ;
2. for f in * ; do mv $f `echo $f | tr '[A-Z]' '[a-z]'`; done
2. for f in * ; do mv $f `echo $f | tr '[A-Z]' '[a-z]'`; done
|
(1) grep root * -ls 2>/dev/null #重定向stderr是因为可能有失效的链接
(2) for FILE in * ; do mv $FILE $(echo $FILE |sed s/[a-z]/[A-Z]/) ; done
(2) for FILE in * ; do mv $FILE $(echo $FILE |sed s/[a-z]/[A-Z]/) ; done