去除文件中重复行,保序perl代码。

#!/usr/bin/perl

#get scripts name
#print $0 . "\n";

#get the parameters
my $argc = $#ARGV+1;
my $src_file;
my $dst_file;
#print "$argc\n";

if($argc == 2) {
    $src_file = @ARGV[0];
    $dst_file = @ARGV[1];
} elsif ($argc == 1) {
    $src_file = @ARGV[0];
    $dst_file = @ARGV[0]."_tmp";
}
else {
    die "error, <src_file> [dst_file]";
}

my $RD_FILE;
my $WR_FILE;
my $line_str;
my %hash;

open ($RD_FILE ,"<$src_file") || die "Cannot open file $!";
open ($WR_FILE ,">$dst_file") || die "Cannot open file $!";
while($line_str = <$RD_FILE>){
    chomp($line_str);
    if(!($line_str =~ /^\s?$/)){
        if(! $hash{$line_str}){
            #print "$line_str\n";
            print $WR_FILE "$line_str\n";
            $hash{$line_str} = 1;
        }
    }
}
close($RD_FILE);
close($WR_FILE);

print "The $dst_file file has generated.\n";
时间: 2024-12-24 19:58:57

去除文件中重复行,保序perl代码。的相关文章

C语言去除数组中重复的字符简单例子

#include <stdio.h> int main(void){ int a[10]={1,2,3,3,4,5,1,3,5,6}; int i,j; int zieo=0; for(i=0;i<10;i++) for(j=i+1;j<10;j++) { if(a[i]==a[j]) { a[j]=0; } } for(i=0;i<10;i++) { if(a[i]!=zieo) { printf("%d\t",a[i]); } } printf(&qu

几种去除数组中重复元素的方法

工作中遇到的一个问题,就是去除数组中重复的元素,记录一下几种有效的方法: 第一种思路:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>去除数组重复项</title> </head> &

关于iOS去除数组中重复数据的几种方法

关于iOS去除数组中重复数据的几种方法 在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方法 可以将NSArray中的元素存入一个字典,然后利用AllKeys或者AllValues取得字典的所有键或值,这些键或值都是去重的.代码: NSArray *dataArray = @[@"2014-04-01",@"2014-04-02",@"2014-04-

去除数组中重复元素

问题 统计一个一维数组中的各个元素的个数,然后删除多出来的重复元素,并输出结果. 例如:[1,2,2,2,3,3,3,3,3]-->[1,2,3] 解决思路 将重复元素的列表中的重复元素进行统计,并将统计结果放在dictionary中,key为元素,value为该元素的个数 然后通过for获取key,得到一个新的列表,就是没有重复元素的列表 解决(Python) #!/usr/bin/env python #coding:utf-8 def count_element(one_list): el

php去除数组中重复数据

<?php /** * 去除数组中重复数据 * by www.jbxue.com **/ $input = array("a" => "green","", "red","b" => "green", "","blue", "red","c" => "witer",

Tools下的mdscongiguer 文件中 43行 oracle 配置 发现需要连接库 -lclntsh libclntsh.so 库是个什么东西呢?

Tools下的mdscongiguer     文件中 43行  oracle 配置      发现需要连接库 -lclntsh      libclntsh.so 库是个什么东西呢? 分想一个知乎网站上的帖子: -----------------------------------------------------------------------------------------------------------------------------------------------

vs报错“以下文件中的行尾不一致,是否将行尾标准化”

vs报错“以下文件中的行尾不一致,是否将行尾标准化” 分析: 通过读取源文件,发现换行都使用的是“\n”   Windows和Unix不同的标准引起的...即“回车”和“换行”的问题... 符号  ASCII码 意义 \n 10 换行NL \r 13 回车CR 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新的字符传过来,那么

Python练习题4(列表去重):[5,3,4,&#39;ok&#39;,4,3,&#39;abc&#39;,8,52,&#39;ok&#39;]去除列表中重复内容 方法一:使用set 方法二:不使用set,自己写方法

方法一:利用集合去重 1 list1 = [5,3,4,'ok',4,3,'abc',8,52,'ok'] 2 list1=list(set(list1)) 3 print(list1) 方法二:此方法略微冗余,先判断元素是否重复,再将重复元素提取并保存到新列表中,再for 新建的列表元素,删除原列表 1 def list_dup(ls): 2 list2 = [] 3 length = len(ls) #获取列表元素个数 4 for i in range(0,length-1): 5 for

python之从文件中按行读取数据

#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'jiangwenwen' # 从文件中按行读取数据 file = open("D:\坚果云\我的坚果云\\2019年计划.txt") while 1: lines = file.readlines(100000) if not lines: break for line in lines: print(line) 原文地址:https://www.cnblogs.c