我有一个文章列表,并希望过滤该列表,以便新的文章列表仅包含来自一组域的文章。

现在,我有一个文章列表(~500)以及一个域列表(~3,000)。

如何从不在我的域列表中的文章列表中删除文章?

两者都是文本文件,我如何在 Bash 上做到这一点?

我有一种感觉,你必须获取文章列表,获取它们的域名,将这两个东西放在一个数组中,然后将数组中的域名与列表中的域名进行比较,如果它们匹配,留着它们。如果没有,请删除该项目并转到下一个。

这是我到目前为止:

readarray a < ./articles
#I know "${b[@]}" is incorrect but idk how to write what I'm trying to do.
awk -F/ '{print $3}' "${a[@]}" > "${b[@]}"
echo "${b[@]}"
# I'm lost after this

以下是输入:

文章.txt:
http://www.cbsnews.com/videos/white-house-knows-options-are-limited-in-ukraine/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNFeY2uVQrvvDAMHeT-0nK2ZLNH7-g
http://www.huffingtonpost.com/2014/03/01/ukraine-russia-crimea_n_4879935.html&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNFH7GY3B6swce3qiK49xGt-CwDvMA
http://www.nybooks.com/blogs/nyrblog/2014/mar/01/ukraine-haze-propaganda/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNFCcWadUJiAzaxg3OSO67gVIPVxww
http://ktla.com/2014/03/01/russian-upper-house-approves-use-of-military-force-in-ukraine-as-protests-continue/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNGTkxvvAo1zSYLlA5ET54OcBsS-PA
http://deadlinelive.info/2014/03/01/you-quit-falling-for-the-war-on-terror-ukraine-coup-spawns-cold-war-redux-2014/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNE3Fa_h7xoESBkcOzXVZCQnfBfxNA
http://www.ctvnews.ca/world/russian-parliament-oks-putin-s-request-to-use-military-force-in-ukraine-1.1709506&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNGnGeo4LWoLF5Qbq2UvL58ymlNFkA
http://www.vanguardngr.com/2014/03/un-security-council-hold-emergency-talks-ukraine/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNFN7YRo037au4RfxSQoeVUCcL9hhA
http://www.reddit.com/r/AdviceAnimals/comments/1z82rt/russian_troops_cross_the_border_in_ukraine/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNFHkmelnoRy2TCW-eYDpIt_t-N1iA
http://criticallegalthinking.com/2014/03/01/knot-politics-thoughts-ukraine-protest/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNFLMuZzbuvzpLf7a9U8MtbhCE5lJQ
http://nypost.com/2014/03/01/russia-parliament-approves-military-action-in-ukraine/&amp;ct=ga&amp;cd=CAIyAA&amp;usg=AFQjCNFpdyelZDEMUk39LmfC1tTDcQ6_FA

域名.txt:
cbsnews.com
huffingtonpost.com

最佳答案

例如,如果您的文章列表在文件 articles 中并且看起来像

... article1 ........ 1.domain.com .......
... article2 ........ 1.domain.com .......
... article3 ........ 2.domain.com .......
... article3 ........ 3.domain.com .......
... article4 ........ 4.domain.com .......

并且您的域列表也在文件 domains 中,看起来像
1.domain.com
2.domain.com
4.domain.com

(如果不是,希望您可以提取域并将它们放入如上所述的文件中)
然后
grep -f domains articles > my_wish_list

只会给你文件域中指定的文章

关于bash - 使用 Bash 从域名列表中过滤 URL 列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22121023/

10-11 23:01
查看更多