Chinaunix

标题: UNIX SHELL编程(第三版)中的一道练习题,百思不得其解。 [打印本页]

作者: 灿烂小猪    时间: 2013-05-29 23:38
标题: UNIX SHELL编程(第三版)中的一道练习题,百思不得其解。
letters目录中有三个文件:no.JSK、AMG.reply、A

现要把letters目录中文件名包含一个大写字母的文件复制到/tmp中,请问怎样操作?

我一直没想明白。。。
作者: dn833    时间: 2013-05-29 23:57
如果仅仅针对这3个文件的话
ll [A-Z]
作者: dn833    时间: 2013-05-30 00:09
又想了个歪招
  1. ls -1|awk -F '[A-Z]' 'NF==2||NF==3'
复制代码
这样得到的文件名就是只包含1个大写字母的了
作者: wenhq    时间: 2013-05-30 09:16
find . -name "*[A-Z]*"
作者: lilanhao5566    时间: 2013-05-30 09:18
应该是用 if [[ $filename =~ "*[A-Z]*" ]]
作者: 灿烂小猪    时间: 2013-05-30 09:35
我挨个试试,谢谢各位了。
作者: cao627    时间: 2013-05-30 20:25
@dn833
  1. > touch AaA
  2. > ls -1|awk -F '[A-Z]' 'NF==2||NF==3'
  3. A
  4. AaA
复制代码

作者: cao627    时间: 2013-05-30 20:44
本帖最后由 cao627 于 2013-05-30 20:47 编辑

ls -1 | grep '^[^A-Z]*[A-Z][^A-Z]*$'

这个命令在代码框里怎么显示为
ls -1 | grep '^[^A-Z]*[A-Z][^A-Z]*
  1. ls -1 | grep '^[^A-Z]*[A-Z][^A-Z]*
复制代码

作者: lbseraph    时间: 2013-05-30 23:00
是只包含一个大写字母还是只要有一个大写字母都可以?用上面的grep就可以~
作者: nathanielwen    时间: 2013-06-05 21:59
  1. [root@node1 work]# ls
  2. A  AMG.reply  no.JSK
  3. [root@node1 work]# ls | sed '/[A-Z]\{2,\}/ d'
  4. A
  5. [root@node1 work]#
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2