首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于匹配目录的regExp

用于匹配目录的regExp
EN

Stack Overflow用户
提问于 2013-10-15 15:35:07
回答 2查看 327关注 0票数 3

对于NetCDF文件,我有一个稍微复杂的目录结构,我想为它创建一个THREDDS目录。

代码语言:javascript
复制
/data/buoy/A0121/realtime/A0121.met.realtime.nc
                         /A0121.waves.realtime.nc
                         etc.
/data/buoy/A0122/realtime/A0122.met.realtime.nc
                         /A0122.sbe37.realtime.nc
                         etc.
/data/buoy/B0122/realtime/B0122.met.realtime.nc
                         /B0122.sbe37.realtime.nc
etc.

但是我发现,regExp属性在datasetScan和聚合/扫描元素中似乎都不能使用regExp处理子目录。例如,这个目录条目可以工作。

代码语言:javascript
复制
<datasetScan name="All TEST REALTIME" ID="all_test_realtime" path="/All/Realtime"
   location="/data/buoy/B0122" >
  <metadata inherited="true">
    <serviceName>all</serviceName>
  </metadata>
  <filter>
    <include regExp="realtime" atomic="false" collection="true" />
    <include wildcard="*.nc" />
    <!-- exclude directory -->
    <exclude wildcard="old" atomic="false" collection="true" />
  </filter>
</datasetScan>

但下面的情况并非如此。没有找到数据集。

代码语言:javascript
复制
<datasetScan name="All TEST REALTIME" ID="all_test_realtime" path="/All/Realtime" 
  location="/data/buoy" >
  <metadata inherited="true">
    <serviceName>all</serviceName>
  </metadata>
  <filter>
    <include regExp="B0122/realtime" atomic="false" collection="true" />
    <include wildcard="*.nc" />
    <!-- exclude directory -->
    <exclude wildcard="old" atomic="false" collection="true" />
  </filter>
</datasetScan>

这是一个非常简化的示例,它只是为了确认regExp与ncML页面底部隐含的子目录不匹配。http://www.unidata.ucar.edu/software/thredds/current/netcdf-java/ncml/v2.2/AnnotatedSchema4.html

我的真正目标是通过以下方式使用ncML聚合

我应该使用FeatureCollections吗?这些是非常简单的时间序列浮标观测文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-21 19:24:50

代码语言:javascript
复制
<filter>
  <include regExp="[A-Z]{1}[0-9]{4}" atomic="false" collection="true" />
  <include wildcard="realtime" atomic="false" collection="true" />
  <include wildcard="post-recovery" atomic="false" collection="true" />
  <include wildcard="*.nc" />
  <!-- exclude directory -->
  <exclude wildcard="old" atomic="false" collection="true" />
</filter>
票数 3
EN

Stack Overflow用户

发布于 2013-10-16 13:11:12

如果正在扫描<aggregation>文件,并且希望包括子目录,则可以在<scan>元素中添加subdirs="true",例如:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
    <aggregation dimName="ocean_time" type="joinExisting">
        <scan location="." regExp=".*vs_his_[0-9]{4}\.nc$" subdirs="true"/>        
    </aggregation>
</netcdf>

对于datasetScan数据集,regexp筛选器将自动应用于所有子目录,因此,如果希望将这些筛选器应用于所有子目录,只需执行以下操作:

代码语言:javascript
复制
<datasetScan name="All TEST REALTIME" ID="all_test_realtime" path="/All/Realtime" 
  location="/data/buoy" >
  <metadata inherited="true">
    <serviceName>all</serviceName>
  </metadata>
  <filter>
    <include regExp="realtime" atomic="false" collection="true" />
    <include wildcard="*.nc" />
    <!-- exclude directory -->
    <exclude wildcard="old" atomic="false" collection="true" />
  </filter>
</datasetScan>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19385287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档