Supondo que todos os arquivos XML estejam no diretório atual e correspondam ao padrão *.xml
e que sejam os nomes de arquivos que você deseja dos arquivos que contêm o XML especificado:
$ xml sel -t -i '/config/modules/Company_Module[active = "true" and codePool = "community"]' -f -nl ./*.xml
Isso usa XMLStarlet ( xml
, mas algumas vezes instalado como xmlstarlet
), que é uma ferramenta de análise XML de linha de comando.
Ele tenta corresponder à expressão XPath especificada e, se corresponder, exibe o nome do arquivo de entrada que continha o XML correspondente.
Como está usando um analisador XML, é independente da ordem das tags no nó <Company_Module>
.