2010-06-23 78 views
0

我有一個文本文件,其中包含一長串單詞。如何刪除文本中的重複單詞(相同單詞但不同大小寫)

  • 誠信
  • 誠實

我想刪除大寫並留下一個較低算作一個字:他們中的一些是通過案例的方式,如重疊。 我該怎麼做?

謝謝。

+4

哪種語言? – 2010-06-23 18:26:12

+4

你想寫一個程序來做到這一點?或者你只是有一個文本文件需要編輯一次,而你只是尋找一個工具來幫助它? – David 2010-06-23 18:31:17

+3

哪plataform? – pcent 2010-06-23 18:31:24

回答

0

我試過了。

> cat test 
Honesty 
World 
Hello 
world 
Hello 
honesty 

> sort -uf test 
Hello 
Honesty 
World 

> sort -uf test | tr A-Z a-z 
hello 
honesty 
world 

感謝您的幫助。

0
  1. 讀一個字
  2. 將它轉換爲小寫
  3. 重複檢查與某種集/散列表之類的事情。

例如,在C++中,你可以使用這樣的事情:

#include <set> 
#include <string> 
#include <iostream> 
#include <algorithm> 
#include <ctype.h> 

struct lowercase { 
    std::string operator()(std::string const &s) const { 
     std::string ret(s); 
     std::transform(&s[0], &s[s.length()-1], &ret[0], tolower); 
     return ret; 
    } 
}; 

int main() { 
    std::set<std::string> items; 

    std::transform(
     std::istream_iterator<std::string>(std::cin), 
     std::istream_iterator<std::string>(), 
     std::inserter(items, items.begin()), 
     lowercase()); 

    std::copy(items.begin(), items.end(), 
     std::ostream_iterator<std::string>(std::cout, "\n")); 
    return 0; 
} 
相關問題