J'ai deux fichiers, un avec environ 100 domaines racine, et un second fichier avec des URL seulement. Maintenant, je dois filtrer cette liste d'URL pour obtenir le troisième fichier qui contient uniquement les URL qui ont des domaines de la liste.Foreach loop in bash
Exemple de liste d'URL:
| URL |
| ------------------------------|
| http://github.com/name |
| http://stackoverflow.com/name2|
| http://stackoverflow.com/name3|
| http://www.linkedin.com/name3 |
Exemple de liste de mots:
github.com
youtube.com
facebook.com
Resut:
| http://github.com/name |
Mon but est de filtrer ligne entière où URL contient mot spécifique . Voilà ce que j'ai essayé:
for i in $(cat domains.csv);
do grep "$i" urls.csv >> filtered.csv ;
done
Le résultat est étrange, j'ai quelques-uns des liens, mais pas tous ceux qui contiennent des domaines de la racine du premier fichier. Puis j'ai essayé de faire la même chose avec python et j'ai vu que bash ne faisait pas ce que je voulais, j'ai un meilleur résultat avec le script python, mais cela prend plus de temps pour écrire un script python que d'exécuter des commandes bash.
Comment dois-je accomplir cela avec bash
en plus?
Voulez-vous utiliser 'bash' pour le traitement de ces fichiers texte? Vous pouvez simplement utiliser 'grep' seul pour cela. – Inian
Quand j'ai essayé ceci: grep "github" urls.csv> github.com J'ai tous les urls github, donc je pense que je fais quelque chose de mal avec pour chaque boucle –
@Spopic: [vous pouvez marquer la réponse comme acceptée en cliquant sur la coche en haut à gauche de cette réponse] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) –