高分求perl高手!如何求出两个文件中重复数据的个数?高手指点

wings2004 2004-05-08 10:27:36
其中一个文件部分内容如下:
3561,17158,1
5511,8335,1
209,18497,3
... ...
如果另一个文件的内容:
3561,17158,4
5511,8335,6
209,18497,39
1239,600,2
1,17159,1
4621,9741,1
... ...输出的结果应为:
3561,17158,1 or 4
5511,8335,6 or 1
209,18497,39 or 3
三个重复的。
如果两个文件中前两个数相同视为一个重复如:3561,17158重复
文件大概有一万多行


...全文
186 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu22 2004-09-03
  • 打赏
  • 举报
回复
open(INFILE1,"temp1.txt");
while(<INFILE1>)
{
$hash{$1} .= " or $2" if($_=~/(\d+,\d+),(\d+)/);
}
close INFILE1;

open(INFILE2,"temp2.txt");
while(<INFILE2>)
{
$hash{$1} .= " or $2" if($_=~/(\d+,\d+),(\d+)/);
}
close INFILE2;

foreach $key(keys %hash)
{
if ($hash{$key} =~ /( or \d+){2,}/)
{
($dump,$hash{$key}) =($hash{$key} =~ /^( or )(.*)/);
print "$key,$hash{$key}\n";
}
}

以上代码适应同一文件有重复数据的情况。

运算速度尚可,两个三万行的文件35秒运行完毕(CII 1G,192M,WINXP)。
julyice 2004-09-01
  • 打赏
  • 举报
回复
先将一个文件中的数据读到hash数组中
while(<INFILE>)
{
$hash{$1}=$2 if($_=~/(\d+,\d+),(\d+)/);
}
然后读另一个文件输出
while(<INFILE2>)
{
if($_=~/(\d+,\d+),(\d+)/)
{
print "$_" if(exists $hash{$1});
}
}
wings2004 2004-05-08
  • 打赏
  • 举报
回复
要代码
内容概要:本文档聚焦于通信系统的调制解调技术与Turbo码的结合应用,系统研究了GMSK调制的二比特差分解调方法,以及Turbo码分别与BPSK、GMSK调制方式联合使用的系统性能。通过Matlab平台实现了完整的通信链路仿真,涵盖信号调制、信道编码、解调解码及误码率分析等关键环节,深入探讨了不同调制体制下Turbo编码系统的抗干扰能力与频谱效率表现。研究不仅提供了算法实现代码,还包含了详细的性能对比分析,有助于理解现代数字通信高效编码调制技术的设计原理与工程实现。此外,文档附带多个相关科研方向的仿真案例,展现出广泛的技术延展性与实际应用价值。; 适合人群:具备通信原理、数字信号处理等相关基础知识,熟悉Matlab编程环境,正在从事无线通信系统仿真、信道编码理论研究或相关领域科研工作的研究生、高校教师及工程技术研究人员。; 使用场景及目标:①深入掌握GMSK调制与Turbo码相结合的技术机制,理解其在提高通信可靠性与频谱利用率方面的优势;②熟练运用Matlab构建完整的数字通信仿真系统,完成从调制编码到解调译码的全流程建模与性能评估;③为无人机通信、卫星通信、移动通信等实际应用场景下的高可靠传输系统设计提供理论支持与算法参考。; 阅读建议:建议结合所提供的Matlab代码逐模块运行与调试,重点关注GMSK差分解调过程与Turbo译码的迭代收敛特性,同时可参考文档列出的其他研究课题拓展仿真范围,提升综合科研与工程实践能力。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 标题所指的"RS485转USB驱动"是一种硬件接口转换技术,其功能在于将传统的RS485通信协议转换为USB接口形式,从而使得现代计算机或设备能够便捷地与采用RS485协议的设备展开通信。RS485作为一种在工业控制、远程通信及多点系统得到普遍应用的串行通信标准,具备传输距离长、抗干扰性能优异等显著优势。文提及的型号(CH340、CH341、FT232RL、PL2303、Y-105)是几种常见的USB至UART(通用异步接收发送器)桥接芯片,它们在USB接口与RS485网络之间充当转换媒介的角色。这些芯片赋予USB通信能力,使得计算机可以通过USB接口与RS485网络的设备执行数据交换。 1. CH340/CH341:这些由韦东山科技研制的USB转串口芯片,常被用于构建低成本的USB转串口适配器。它们提供从USB到UART的转换功能,支持多种波特率的设定,并且在Windows操作系统环境下通常需要安装相应的驱动程序方可正常运作。 2. FT232RL:FTDI公司推出的一款高性能且低功耗的USB到UART桥接器。FT232RL配备全速USB 1.1接口,支持多种串行接口模式,在数据通信、工业控制等领域能够得到广泛应用。同样地,采用FT232RL的设备在连接至电脑时也需要安装对应的驱动程序。 3. PL2303:硅光电子(Prolific)公司所生产的产品,亦是一种常用的USB到UART桥接芯片。它展现出良好的兼容性以及广泛的驱动程序支持,适用于各类USB至串口的应用场景。 4. Y-105:这可能是一款特定的RS485转USB转换模块,或许集成了上述其一种或多种转换...

37,738

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧