如何在这些标签之间搜索任何内容,我想列出f:facet xml元素之间存在某些值的所有出现
<f:facet name="header">Name</f:facet>
答案 0 :(得分:1)
如果每个f:facet
标记都在一个单独的行上,那么您可以这样做:
cat file.xml | sed -ne 's/<f:facet[^>]*>//;s/<\/f:facet>//p'|grep Name
如果你想查看多个文件,你可以这样做:
find . -type f| xargs sed -ne 's/<f:facet[^>]*>//;s/<\/f:facet>//p'
答案 1 :(得分:1)
这将列出<f:facet>
标记之间发生的任何内容:
sed 's/<f:facet[^>]*>\([^<]*\)<\/f:facet>/\1/'
这个测试:
echo '<f:facet name="header">Name</f:facet>' | sed 's/<f:facet[^>]*>\([^<]*\)<\/f:facet>/\1/'
输出:
Name
在当前目录中的所有文件上运行它:
sed 's/<f:facet[^>]*>\([^<]*\)<\/f:facet>/\1/' *
在所有目录下的所有文件中运行它:
find /path/to/common -type f -print0 | xargs -0 sed 's/<f:facet[^>]*>\([^<]*\)<\/f:facet>/\1/'
如果您从Windows CMD.EXE提示符运行find
,则可能是Windows FIND.EXE
正在提供该错误消息。试试find --help
和find /?
。前者是GNU find
,后者是Windows。如果前者给你一个错误信息而后者给你帮助文本,那么这将确认问题。
您需要启动一个Cygwin实例。