Lire les lignes d'un fichier puis de rechercher un autre fichier à l'aide de ces valeurs
J'ai un fichier avec une liste de noms (names.txt
) et j'ai un fichier avec des milliers de lignes de l'onglet valeurs séparées (CallLog.tsv
). J'ai besoin de grep
chaque nom dans names.txt
à l'aide de la CallLog.tsv
fichier et l'enregistrer comme un nouveau fichier.
Je fais les noms individuellement:
grep "John" CallLog.tsv > JohnCallLogs
Alors je prends tous les noms et cat
'ing à un autre fichier:
cat "John" "Mike" "Dave > FilteredCallLogs
Je veux écrire un script pour le rendre plus efficace. J'apprécie toute l'aide.
OriginalL'auteur Fr0ntSight | 2013-07-30
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme cela:
<names.txt
fluxnames.txt
dans la boucle oùwhile read name
lit ligne par ligne dans la variable de boucle$name
.>FilteredCallLogs.tsv
redirige la sortie de la boucle dans le fichierFilteredCallLogs.tsv
.Il semble que cela fonctionne! Je n'ai jamais vu l'entrée à la fin comme ça: <names.txt Très cool. Merci.
Pour toute personne intéressée, j'ai tourné dans un gist. gist.github.com/uabassguy/f65c6310b68bfefcb626d4d917767f92
J'ai vu moyen trop de gist disparaissent sans laisser de trace de considérer que le service n'importe où près de utile.
OriginalL'auteur Ansgar Wiechers
Au lieu de l'appeler
grep
plusieurs fois (une fois par nom), utilisez la-f
la possibilité de trouver tous les matches en un seul appel:Si vous avez besoin de lignes groupées par nom, vous pouvez trier le résultat sur le champ approprié:
OriginalL'auteur chepner