2013-07-17 86 views
1

我有一個文件File1.txt,它有一些單詞。我有另一個文件(稱爲blacklistwords.txt),我需要從原始file1.txt中刪除blacklistwords.txt中包含的所有單詞。從另一個文件中刪除一個文件中的停用詞

File1.txt 
---------- 
return 25 
murder 28 
another 54 
stackoverflow 12 
response 16 
violence 32 


blacklistwords.txt 
------------------ 
violence 
murder 
crime 

這是輸出應該什麼樣子:

Final output: 
------------- 
return 25 
another 54 
stackoverflow 12 
response 16 
+0

這將有助於如果您告訴我們您使用的是什麼操作系統。 –

回答

2

我想這和它的工作:

grep -i -F -v -f blacklistwords.txt file1.txt 
0

你的解決方案是基本正確。

讓我只是注意到,你沒有要求不區分大小寫匹配,並且通過-i開關添加它會造成相當大的性能損失,至少對於unicode環境來說,所以如果它不是真的需要。

0

在爲我自己的案例分解user965692的解決方案時,我發現需要另一個選項-w,它只搜索整個單詞。

要打破它充分:

  • -i告訴grep來忽略大小寫
  • -F告訴grep的期望固定字符串列表
  • -w搜索整個單詞(即,如果「流」是它不會匹配「溢出」
  • -v反轉匹配(即只打印什麼是而不是在字符串列表中
  • -f blacklistwords.txt從給定文件的行獲得的圖案

因此,刪除所有的黑名單的話:

grep -i -F -w -v -f blacklistwords.txt file1.txt

相關問題