正则表达式显示15个字符的文件

时间:2011-09-24 19:16:16

标签: regex linux unix

问题1(13分)
在gaul上,将您的工作目录更改为/ bin /
(a)执行pwd命令时会得到什么?解释你为什么得到那个输出?
(b)使用Unix命令显示当前文件名(不显示任何目录内容,如果有) 工作目录,名称:
I. (2分)长度恰好为15个字符

这是我在作业中唯一无法完成的,我写了两个正则表达式,但我不知道哪一个是正确的

ls / bin / | grep -c'([0-9])([a-z])* {1,15}'
8

ls / bin / | grep -c'[0-9] [a-z] * {1,15}'
45

它必须只是字符A-Z,0-9和_

3 个答案:

答案 0 :(得分:1)

你使它变得比它需要的更复杂。它没有说使用正则表达式,也没有将它限制为那些字符(实际的文件名不限于那些)。

看看this documentation

提示:您希望使用给定的一个或多个字符(?,*或[)来匹配15个单个字符。

答案 1 :(得分:0)

我认为以下ls命令足以解决您的问题:

ls -d ???????????????
来自ls手册页的

 -d, --directory
              list directory entries instead of contents, and do not dereference symbolic links

和15“?”意思是,dir / file的名称应该是15的长度。

答案 2 :(得分:0)

Awk是这项工作的便利工具:

ls /bin | grep -ve "[^A-Za-z_]" | awk '{if (length == 15) print $0}'