过滤掉一系列文件中的字符串

时间:2015-09-22 18:39:29

标签: shell awk sed grep

我有一组文件名为" files.txt"如下所示

files.txt包含以下文件:

/usr/local/test1.txt
/usr/local/test2.txt
/usr/local/bin/grr.txt
/usr/local/oracle/test4.txt

现在我必须grep(过滤)字符串名称" PackageName"的值。和" ProcedureName"将所有这些文件放入output.txt文件

ex:所有上述文件都有以下内容,现在我想要PackageName和ProcedureName的值,格式为" XXbin / process"在输出文件中。

 <property name="PackageName" value="XXbin"/>
  <property name="ProcedureName" value="process"/>

尝试:

find ${direct} -name "*.jca" -exec awk "/ && /PackageName/ && /ProcedureName/' {} \; >> out.txt

1 个答案:

答案 0 :(得分:1)

你的awk命令开头有一个多余的/ &&,你在awk脚本的开头有双引号但在脚本末尾有单引号你正在使用&&如果你想要||

无论如何,请保持简单:

find "$direct" -name "*.jca" -print |
xargs awk '/(Package|Procedure)Name/'