我有一个目录/usr/local/
,它有一些子目录:
/usr/local/service/servicename/er.jca
/usr/local/service/servicename1/er1.jca
...
我要搜索这些子目录中的所有*.jca文件,并以PackageName/Procedure Name格式为所有jca文件grep PackageName和Procedure Name的值(过滤掉),但前提是*.jca文件
className="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec"
我期望的输出是在一个txt文件中列出所有PackageName/ProcedureName的值。例如,给定这个.jca文件:
ex:
className="oracle.tip.adapter.db.DBStoredProcedureInteractionSpec">
<property name="SchemaName" value="APPS"/>
<property name="PackageName" value="XX"/>
<property name="ProcedureName" value="process"/>
输出应为:
XX/process
我试过:
grep -rnw $directory -e *.jca
$directory=/usr/local
你介意Perl解决方案吗?这假设您正在目录(和subdirs)中使用所有'*.jca'文件运行该命令。你知道吗
给定输入文件的输出:
首先创建以下文件:
调用该文件
filter.sh
,然后chmod a+x filter.sh
。filter.sh
将您想要的两个项目提取到x
和y
中,然后将它们回声输出。毫无疑问,有一个更优雅的方式来做这件事,但它的工作。请注意,您可以对单个文件运行filter.sh
,以验证其行为是否符合您的要求。在创建filter.sh
之后,下面的命令应该可以执行以下操作:这将在目录
${directory}
中找到与glob模式*.jca
匹配的所有文件,然后在其上运行filter.sh
。你知道吗相关问题 更多 >
编程相关推荐