xml - 如何搜索xml文件,条件是文件名在文件内

标签 xml linux bash awk find

如何在文件名在文件内的情况下搜索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/

相关文章:

bash - shell脚本中双括号的问题

linux - Bash 脚本打印错误的值

linux - 在 bash 中处理文本 - 从 pactl sink-inputs 输出中提取程序的体积

xml - XSLT if 表达式语法,组合多个表达式

android - AOSP - Android 6 Marshmallow 编译 - make : *** [run_soong] Error 126

xml - 如何使用 XSLT 连接大量 XML 文件?

python - Keras: ValueError: Input 0 is incompatible layer 问题

c++ - 如何在程序执行时查看 Valgrind Massif 输出(或其他堆分析器)?

android - 协调器布局和运动布局有什么区别?

jquery - 奇怪的 jQuery AJAX 行为 : XML comes back as #document and not object