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;
}

原文地址:https://www.cnblogs.com/donggongdechen/p/9711118.html