我有一个文章列表,并希望过滤列表,以便新的文章列表只包含来自一定数量域名的文章。
现在,我有一个文章列表(~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
以下是输入:
articles.txt:
http://www.cbsnews.com/videos/white-house-knows-options-are-limited-in-ukraine/&ct=ga&cd=CAIyAA&usg=AFQjCNFeY2uVQrvvDAMHeT-0nK2ZLNH7-g
http://www.huffingtonpost.com/2014/03/01/ukraine-russia-crimea_n_4879935.html&ct=ga&cd=CAIyAA&usg=AFQjCNFH7GY3B6swce3qiK49xGt-CwDvMA
http://www.nybooks.com/blogs/nyrblog/2014/mar/01/ukraine-haze-propaganda/&ct=ga&cd=CAIyAA&usg=AFQjCNFCcWadUJiAzaxg3OSO67gVIPVxww
http://ktla.com/2014/03/01/russian-upper-house-approves-use-of-military-force-in-ukraine-as-protests-continue/&ct=ga&cd=CAIyAA&usg=AFQjCNGTkxvvAo1zSYLlA5ET54OcBsS-PA
http://deadlinelive.info/2014/03/01/you-quit-falling-for-the-war-on-terror-ukraine-coup-spawns-cold-war-redux-2014/&ct=ga&cd=CAIyAA&usg=AFQjCNE3Fa_h7xoESBkcOzXVZCQnfBfxNA
http://www.ctvnews.ca/world/russian-parliament-oks-putin-s-request-to-use-military-force-in-ukraine-1.1709506&ct=ga&cd=CAIyAA&usg=AFQjCNGnGeo4LWoLF5Qbq2UvL58ymlNFkA
http://www.vanguardngr.com/2014/03/un-security-council-hold-emergency-talks-ukraine/&ct=ga&cd=CAIyAA&usg=AFQjCNFN7YRo037au4RfxSQoeVUCcL9hhA
http://www.reddit.com/r/AdviceAnimals/comments/1z82rt/russian_troops_cross_the_border_in_ukraine/&ct=ga&cd=CAIyAA&usg=AFQjCNFHkmelnoRy2TCW-eYDpIt_t-N1iA
http://criticallegalthinking.com/2014/03/01/knot-politics-thoughts-ukraine-protest/&ct=ga&cd=CAIyAA&usg=AFQjCNFLMuZzbuvzpLf7a9U8MtbhCE5lJQ
http://nypost.com/2014/03/01/russia-parliament-approves-military-action-in-ukraine/&ct=ga&cd=CAIyAA&usg=AFQjCNFpdyelZDEMUk39LmfC1tTDcQ6_FA
domains.txt:
cbsnews.com
huffingtonpost.com
答案 0 :(得分:2)
例如,如果您的文章列表位于文件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
只会为您提供文件域中指定的文章
答案 1 :(得分:0)
如果列表永远不会超过这些数字,那么一个简单的grep one-liner就可以了:
for mydomain in `cat domains.txt`;do cat articles.txt |grep $mydomain >> goodarticles.txt;done