awk 去重的同时并保持原来的顺序
#-----------awk.awk------------
{
if(data[$0]++ == 0)
lines[++count] = $0
}
END {
for (i=1;i<=count;i++)
print lines[i]
}
脚本用法如下:
awk -f awk.awk text_to_process
cat text_to_process:
jia
yang
lu
yang
那么处理之后的结果就为:
jia
yang
lu
C++中的set也可以实现去重:
#include <iostream>
#include <string>
#include <set>
int main() {
std::string s[]={"jia", "yang", "lu", "jia"};
const size_t SIZE=sizeof s/sizeof s[0];
std::set<std::string> myset(s, s+SIZE);
for(std::set<std::string>::const_iterator it=myset.begin();it!=myset.end();++it)
std::cout<<*it<<std::endl;
return 0;
}