如何在文件名在文件内的情况下搜索xml文件
第一个任务
所以首先要搜索我们执行的 xml 类型的文件:
find /tmp -name '*.xml'
/tmp/Prepare_file_Env.xml
第二个任务
第二部分是查找文件名 - Prepare_file_Env word 在文件中 - Prepare_file_Env.xml ,
所以我这样做了
例子:
grep -cq Prepare_file_Env Prepare_file_Env.xml ; [[ $? -eq 0 ]] && echo $FileName
我的问题 - 如何将两个任务组合在一个查找语法中
请求查找的语法 ... 或任何其他解决方案 ...
find /tmp -name '*.xml' -exec ............
xml 文件示例 - Prepare_file_Env.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Component configuration file -->
<Component>
<Name>Prepare_file_Env</Name>
基于 XML 文件的 find CLI 的预期结果示例
/tmp/Prepare_file_Env.xml
最佳答案
$ find . -type f -name '*.xml' -exec grep -o -P '(?<=<Name>).*(?=</Name>)' {} \;
Prepare_file_Env
总结:
grep -o -P
使用特殊的 Perl
输入正则表达式匹配并获取 <Name>
之间的单词和 </Name>
对于 xml
find
找到的文件.
关于xml - 如何搜索xml文件,条件是文件名在文件内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48305686/