1
cosbeta 2012-07-11 13:18:13 +08:00 2
<?php
$a = file( "1.txt" ); $b = file_get_contents("2.txt"); foreach( $a as $line){ $line = trim($line); if( strlen( $line) <1) continue; if( substr_count($b,$line) >0) $b = str_replace($line,"",$b); }?> php代码如上,哈哈,程序没考虑效率,如果文件很大,就会很消耗内存 |
2
lululau 2012-07-11 13:27:34 +08:00
grep -vFf 1.txt 2.txt
|
3
cjjia OP @cosbeta 不知道这个怎么用,是把上面的代码放到index.php文档里面,然后上传到php空间吗?然后把1.txt和2.txt上传到同一目录?
在浏览器打开之后没显示什么,然后下载回来1.txt和2.txt看了一下里面内容没变,是不是服务器缺少什么函数? 可以加下QQ吗? 如果你帮我解决了 可以适当的付些报酬给你 |
5
cosbeta 2012-07-11 13:58:53 +08:00
首先,1.txt和2.txt的权限要对,然后 和php放在同一个目录。 直接运行 php tool.php 假设php文件名是tool.php
|
6
reus 2012-07-11 14:05:43 +08:00
sort 2.txt 1.txt 1.txt | uniq -u
|
7
forsaken 2012-07-11 14:08:18 +08:00
只能是开发语言来实现,比如php或者ruby或者C吧。软件貌似很少。
|
8
shiny 2012-07-11 14:18:47 +08:00 1
<?php
$a = explode("\n",file_get_contents("1.txt")); $b = explode("\n",file_get_contents("2.txt")); $c = array_diff($b,$a); file_put_contents("3.txt",implode("\n",$c)); |
9
ospider 2012-07-11 14:24:11 +08:00
#!/usr/bin/env python
#coding:utf-8 file_a = open('1.txt', 'r').readlines() file_b = open('2.txt', 'r').readlines() new_b = [lb for lb in file_b if lb not in file_a]#遍历2中每一行,看是否在1中存在 with open('new_2.txt', 'w') as new_file: for l in new_b: new_file.write(l) |
10
bullda 2012-07-11 16:34:29 +08:00
beyond compare?
|
12
HowardMei 2012-07-11 17:33:55 +08:00
文件所在目录terminal输入:
awk ' !x[$0]++' 1.txt 2.txt | split -l $(awk 'END { print NR }' 1.txt) 得到两个新文件,其中一个就是去重后的2.txt 从服务器bash_proile中拿来的,会用awk的同学应该很容易理解。 |