Ich habe zwei Dateien, eine mit etwa 100 Stammdomänen und eine zweite Datei mit nur URLs. Jetzt muss ich diese URL-Liste filtern, um eine dritte Datei zu erhalten, die nur URLs enthält, die Domains von der Liste haben.Foreach-Schleife in bash
Beispiel der URL-Liste:
| URL |
| ------------------------------|
| http://github.com/name |
| http://stackoverflow.com/name2|
| http://stackoverflow.com/name3|
| http://www.linkedin.com/name3 |
Beispiel für Wortliste:
github.com
youtube.com
facebook.com
resut:
| http://github.com/name |
Mein Ziel ist es ganze Reihe heraus zu filtern, wo URL bestimmtes Wort enthalten . Das ist, was ich versucht:
for i in $(cat domains.csv);
do grep "$i" urls.csv >> filtered.csv ;
done
Ergebnis ist seltsam, ich habe einige der Links bekommen, aber nicht alle von ihnen, die Root-Domains aus der ersten Datei enthalten. Dann versuchte ich dasselbe mit Python zu machen und sah, dass bash nicht das tut, was ich wollte. Ich habe ein besseres Ergebnis mit Python-Skript, aber es braucht mehr Zeit, um Python-Skript zu schreiben als bash-Befehle auszuführen. Wie soll ich dies mit bash
weiter machen?
Haben Sie 'bash' zum Verarbeiten solcher Textdateien verwenden möchten? Sie könnten einfach 'grep' alleine dafür verwenden. – Inian
Als ich das versuchte: grep "github" urls.csv> github.com Ich habe alle github URLs, so denke ich, dass ich etwas falsch mit für jede Schleife tun –
@Spopic: [Sie können die Antwort als akzeptiert markieren durch Klicken auf das Häkchen oben links in dieser Antwort] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235) –