2014-09-20 4 views
-2

Je suis nouveau dans le script et besoin d'aide sur celui-ci: J'ai un fichier .txt; dans chaque ligne que j'ai chiffres, par exemple:extrait la liste des sous-répertoires du fichier d'entrée

123456 
234567 
345678 
567890 
.... 

D'autre part, dans un répertoire maître je les sous-répertoires. Dans chaque sous-répertoire, j'ai un fichier au format .xml. Dans chacun des fichiers .xml, j'ai un tag avec 6 chiffres; exemple: dans le fichier 1.xml sous sous répertoire 1, la valeur de la balise est 123456, dans le fichier 2.xml sous sous répertoire 2, la valeur de la balise est 111111, dans le fichier 3.xml sous sous répertoire 3, la valeur de la balise est 345678 ...

Comment puis-je extraire la liste des sous-répertoires et enregistrer dans un fichier où il y a une correspondance entre les fichiers .txt et les fichiers .xml? Merci

+0

Ceci est très flou. Vous devez fournir des exemples de TOUTES les entrées et les sorties attendues, ainsi que ce que vous avez essayé jusqu'à présent. Vous devez essayer de résoudre le problème vous-même en premier et montrer ce que vous avez fait. –

Répondre

0

j'ai pu enregistrer dans une ligne de fichier de sortie dans le fichier xml dans les sous-répertoires ayant la chaîne que je suis à la recherche pour utiliser la ligne de commande:

grep -r HDContent Priorite_2_HD/*/adi_new.xml

où Priorit_2_HD est le sous-répertoire et adi_new.xml est le fichier .xml

la sortie ressemble

Priorite_2_HD/ados_contre_attaquent_les_hd_vf_Ingest/adi_new.xml: Priorite_2_HD/Ainsi_Soient_Ils_Saison_1_vf_W/adi_new.xml: Priorite_2_HD/Ainsi_Soient_Ils_Serie_vf_W/adi_new.xml: Priorite_2_HD/Amour_Haine_Propagande_Saison_1_vf_W/adi_new.xml: Priorite_2_HD/Amour_Haine_Propagande_Saison_2_vf_W/adi_new.xml: Priorite_2_HD/Amour_Haine_Propagande_Serie_vf_W/adi_new.xml: Priorite_2_HD/Apparences_Saison_1_vf_W/adi_new.xml: Priorite_2_HD/Apparences_Serie_vf_W/adi_new.xml: Priorite_2_HD/Arthur_Saison_11_vf_W/adi_new.xml:

maintenant, en utilisant awk je veux mettre dans un fichier de sortie toutes les lignes ayant la chaîne HDContent = "Y". essayer d'utiliser la ligne de commande

awk 'BEGIN {FS = "/"}; {if $ 3 == "Value =" \ Y \ ""; print $ 2, $ 3} 'input.txt

mais pas de chance. Merci