J'ai un fichier texte Je sais que Certains forts> de Ces identifiants sont trouvés dans ids.txt code> contenant une chaîne d'identité unique par ligne, par exemple:
1.txt code> et
2.txt code> p> p>
2.txt
<Data>
<ID>foo</ID>
<Stuff>Some things</Stuff>
</Data>
<Data>
<ID>bar</ID>
<Stuff>Other things</Stuff>
</Data>
3 Réponses :
Puisque vous voulez simplement trouver les identifiants dans les deux fichiers (F1 et F2), vous n'avez pas à analyser le Les sorties ci-dessus à une doublure: p> ids.txt code>:
Mais ce n'est pas un format de données indépendant, est-ce? J'ai besoin de le configurer sur n'importe quel motif de balisage dans mes fichiers de données, correct?
@Michael dans votre question que vous avez dit, "Les formats de données ne sont pas improvisants". CA ne peut pas être vrai. Sinon, comment pouvez-vous dire, où se trouve la valeur d'identification dans un fichier? Nous analysons JSON, XML, Texte, CSV ... Formats via une logique différente. Vous ne pouvez pas dire, hé, voici mon dossier, quel que soit le format, donnez-moi la valeur d'identification.
Voici un pour GNU AWK, loin d'être parfait: sortie: p>
Je ne suis pas un expert code> awk code> alors j'ai tendance à casser les choses en morceaux lorsqu'un one-liner pourrait faire.
Je vais supposer que vous avez pris au cœur Commentaire antérieur à une solution indépendante au format simple est peu probable. Au lieu de cela, j'ai pris l'approche de documenter le format à l'intérieur du script et de normaliser les deux formats d'entrée. Si un troisième format apparaît, alors modifiez simplement le script pour documenter et normaliser ce nouveau format. P>
$ cat 1.txt id=foo name=example age=81 end id=notTheIDYouAreLookingFor name=other age=null $ cat 2.txt <Data> <ID>foo</ID> <Stuff>Some things</Stuff> </Data> <Data> <ID>bar</ID> <Stuff>Other things</Stuff> </Data> $ cat IDs.txt foo bar someOtherID $ bash work.sh foo
S / Les formats de données spécifiques ne sont pas importants / les formats de données spécifiques sont tous importants / code>. Vous ne pouvez pas écrire un outil qui sait magiquement que dans certains fichiers, une chaîne
FOO code> est un identifiant par opposition à un nom ou une étiquette au lieu d'une valeur ou de quoi que ce soit d'autre sans savoir / analyser le format de ce fichier.