Situation : Sous Linux, j'ai un dossier parent avec 22 dossiers de noms différents, chacun contenant un fichier d'un nom particulier. asset.xml
. Dans ces dossiers se trouvent également des centaines d'autres dossiers avec asset.xml
mais ce sont des versions antérieures et elles ne m'intéressent pas. J'ai besoin de rechercher dans chaque fichier 3 balises "legend|assetID|name"
et renvoie les informations contenues dans ces balises. Elles sont généralement sur la même ligne, donc je pense que Grep
c'est bon.
Ce que j'ai essayé :
grep -nr -E "legend|assetID|name" . > /dir/to/the/ReportFile.txt
Cela prend beaucoup trop de temps et renvoie beaucoup trop de données dupliquées, ce qui n'est pas pratique.
find . -maxdepth 2 -exec grep -E "legend|assetID|name" . > /dir/to/the/ReportFile.txt
Cela a retourné une erreur avec -exec manquant un argument, donc le fichier de sortie était vide.
find . -maxdepth 2 -| grep -E "legend|assetID|name" . > /dir/to/the/ReportFile.txt
Ceci a retourné un fichier de sortie vide.
Question : Comment puis-je parcourir chaque fichier de même nom dans des dossiers de noms différents (qui ont aussi d'autres sous-dossiers avec des fichiers de même nom) et extraire les informations dans les 3 balises et écrire ces données dans un fichier de sortie ?