-1
votes

Ne trouvez que ces identifiants d'une liste présente dans les deux fichiers de données

J'ai un fichier texte ids.txt code> contenant une chaîne d'identité unique par ligne, par exemple: xxx pré>

Je sais que Certains forts> de Ces identifiants sont trouvés dans un ou les deux forts> de 2 autres fichiers avec des lignes de données formulées formatées, 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>


1 commentaires

S / Les formats de données spécifiques ne sont pas importants / les formats de données spécifiques sont tous importants / . Vous ne pouvez pas écrire un outil qui sait magiquement que dans certains fichiers, une chaîne FOO 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.


3 Réponses :


1
votes

Puisque vous voulez simplement trouver les identifiants dans les deux fichiers (F1 et F2), vous n'avez pas à analyser le ids.txt : xxx

Les sorties ci-dessus à une doublure: xxx


2 commentaires

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.



0
votes

Voici un pour GNU AWK, loin d'être parfait: xxx

sortie: xxx


0 commentaires

0
votes

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


0 commentaires