![](/img/trans.png)
[英]Perl: Compare Two CSV Files and Print out matches (modifying this code)
[英]Perl script to compare two files but print in order
我遵循了这个问题, Perl比较了两个文件并打印了匹配的行,并找到了使用哈希在两个文件之间匹配或不匹配的行。
但是我发现哈希值重新排列了行,并且我希望行按顺序排列。 我可以编写多个for循环来按顺序获取结果,但这不如哈希有效。 有没有人以前遇到过这个问题,请帮助他们解决问题
也许不完全理解这个问题,但是
fgrep -xf file2 file1
是不足够的?
要么
fgrep -xf file1 file2
是的,它不是perl
但是,简短而又快速...
这可以通过两个步骤有效地完成。 假设您已经能够找到“匹配的线”,但是它们的顺序错误; 那么一个简单的grep
就可以重新组织它们。 假设您有一个脚本matchThem
,它接受两个输入( file1
和file2
)并将它们输出到tempFile
,那么整个脚本将是:
matchThem file1 file2 > tempFile
grep -Fx -f tempFile file1
-Fx
标志的意思是:
-F : find exact match only (much faster than wildcards)
-x : only match whole lines
如果要保留插入顺序的哈希,请尝试使用CPAN模块Tie :: IxHash 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.