首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请问一个find命令正则匹配有关问题

2013-11-05 
请教一个find命令正则匹配问题./20130901012538_00001_001.mon./20130901012815_00001_001.mon./201309010

请教一个find命令正则匹配问题
./20130901012538_00001_001.mon
./20130901012815_00001_001.mon
./20130901013043_00001_001.mon
./20130901013306_00001_001.mon
./20130901013527_00001_001.mon
./20130901013742_00001_001.mon
./20130901013951_00001_001.mon
./20130901014218_00001_001.mon
./20130901014439_00001_001.mon
./20130901014750_00001_001.mon
./20130901015007_00001_001.mon
./20130901015229_00001_001.mon

我有像这样的文件,从命令规则是时间戳_00001_001.mon 现在有1号到16号的文件,我用find命令找出1号到10号,我用的命令是find . -name '201309((0([0-9]{1}))|([10]))*_001.mon' | more 但是没有输出,不知道错在哪里,麻烦高手指点一下! shell 正则
[解决办法]
((0([0-9]{1}))
[解决办法]
([10]))*
中间根本就没包含你:
01015007_00001
中的下划线。
所以必然找不到啊。
[解决办法]
蛋疼的shell,貌似连+, {m,n}这样的表示数量的都不支持
写了个蛋疼的

find . -name "201309[0-1][0-1][0-9][0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9][0-9][0-9]_[0-9][0-9][0-9].mon"  -print

[解决办法]
find支持正则的,如下是楼主的要求

find . -regextype sed -regex ".*/201309\(0[0-9]\{1\}\
[解决办法]
10\)[0-9]\{6\}_00001_001\.mon"

[解决办法]
引用:
Quote: 引用:

find支持正则的,如下是楼主的要求

find . -regextype sed -regex ".*/201309\(0[0-9]\{1\}\
[解决办法]
10\)[0-9]\{6\}_00001_001\.mon"


你好为什么我在AIX上和suse上执行都报错?说是不支持-regextype。

你的suse的find版本多少?4.4.0的至少可以
[解决办法]
find不支持的华,可以find后再grep

热点排行