亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 8122 | 回復(fù): 16
打印 上一主題 下一主題

如何在兩個文件中比較 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-07-25 14:53 |只看該作者 |倒序瀏覽
有個問題:
file1:
10.5.246.3
10.5.247.130
10.5.247.2
10.5.248.130
10.5.248.2
10.5.249.3


file2:
地點      ip
經(jīng)一路        10.5.246.0
小河村        10.5.247.0
大廈        10.5.10.0

以file1里的ip為關(guān)鍵字,從file2中搜索出包含此ip地址的前三段數(shù)字的行,并將地點和ip顯示在一個新文件file3中,
結(jié)果舉例:
經(jīng)一路 10.5.246.3
小河村 10.5.247.130
小河村 10.5.247.2
          10.5.248.130
          10.5.248.2
          10.5.249.3

不知該如何編寫啊,采用的perl是windows版本,沒有unix下的grep等命令。

論壇徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亞冠之大阪鋼巴
日期:2015-08-07 20:57:582015亞冠之大阪鋼巴
日期:2015-09-02 14:09:09
2 [報告]
發(fā)表于 2013-07-25 16:07 |只看該作者
本帖最后由 只是一個紅薯 于 2013-07-25 16:09 編輯

  1. #!/usr/bin/perl
  2. use 5.016;
  3. use strict;
  4. use warnings;
  5. use Tie::File;
  6. tie my @a,'Tie::File', '1.txt';
  7. tie my @b,'Tie::File', '2.txt';
  8. tie my @c,'Tie::File', '3.txt';
  9. my %hash;
  10. my @tmp=@a;
  11. for my $bb(@b){
  12.     next unless $bb=~/\d/;
  13.     my($adr,$ip)=split /\s+/,$bb;
  14.     duu($ip);   
  15.     for my $aa(@a){
  16.     if(duu($ip) eq duu($aa)){
  17.         @tmp = grep { $_ ne $aa } @tmp;
  18.         $hash{$aa}=$adr ;
  19.     }
  20. }  
  21. }
  22. $hash{$_}='' for (@tmp);
  23. sub duu{
  24.     my $t=shift;
  25.     my($a,$b,$c,$d)=split /\./,$t;
  26.     ($a,$b,$c);
  27. }
  28. push @c,$hash{$_}."\t".$_ for  keys %hash;
  29. @c=reverse sort @c;
  30. untie @a;
  31. untie @b;
  32. untie @c;
復(fù)制代碼

論壇徽章:
0
3 [報告]
發(fā)表于 2013-07-25 16:31 |只看該作者
謝謝,這么快,我學(xué)習(xí)一下程序代碼,還看不太懂:)

論壇徽章:
0
4 [報告]
發(fā)表于 2013-07-25 20:24 |只看該作者
還有兩個地方看不明白:
第一:
if(duu($ip) eq duu($aa)){

        @tmp = grep { $_ ne $aa } @tmp;

        $hash{$aa}=$adr ;
以上是說生成一個hash數(shù)組,但是中間這一行有什么用呢?
第二:
$hash{$_}='' for (@tmp);
是兩個單引號嗎?起什么作用呢?

論壇徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34
5 [報告]
發(fā)表于 2013-07-25 21:23 |只看該作者
回復(fù) 4# zljjg2000


@tmp = grep { $_ ne $aa } @tmp;
grep和map的功能基本差不多 都是從grep{}后的數(shù)組中篩選出滿足{}中的條件,并且返回一個數(shù)組

$hash{$_}='' for (@tmp);
這句話的意思是將列表@tmp中的每個元素作為哈希hash的key 并將這些key對應(yīng)的value清空

論壇徽章:
7
戌狗
日期:2013-12-15 20:43:38技術(shù)圖書徽章
日期:2014-03-05 01:33:12技術(shù)圖書徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16賽季CBA聯(lián)賽之青島
日期:2016-03-17 20:36:13
6 [報告]
發(fā)表于 2013-07-26 01:52 |只看該作者
也來試試 ~
  1. #!/usr/bin/perl

  2. open my $F1, 'file1';
  3. open my $F2, 'file2';
  4. open my $F3, '>', 'file3';

  5. my %f2 = map { reverse /(\S+)\s+(.*?)\d+$/ } <$F2>;
  6. while (<$F1>) {
  7.     my ($k) = /(.*\.)/;
  8.     print $F3 $f2{$k} ? "$f2{$k}\t$_" : "\t$_";
  9. }
復(fù)制代碼

論壇徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34
7 [報告]
發(fā)表于 2013-07-26 07:18 |只看該作者
回復(fù) 6# rubyish


太妙了! 值得細(xì)細(xì)分析
有點象文言文或者古詩

論壇徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亞冠之大阪鋼巴
日期:2015-08-07 20:57:582015亞冠之大阪鋼巴
日期:2015-09-02 14:09:09
8 [報告]
發(fā)表于 2013-07-26 10:03 |只看該作者
奇怪,用komodo編譯,要加個括號...
rubyish 發(fā)表于 2013-07-26 01:52
  1. my %f2 = map { reverse (/(\S+)\s+(.*?)\d+$/) } <$F2>;
復(fù)制代碼
也來試試 ~

論壇徽章:
0
9 [報告]
發(fā)表于 2013-07-26 12:12 |只看該作者
再請教:
@tmp = grep { $_ ne $aa } @tmp;
中的$_指的哪個變量啊

論壇徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34
10 [報告]
發(fā)表于 2013-07-26 12:27 |只看該作者
回復(fù) 9# zljjg2000


    grep { $_ ne $aa } @tem
$_是后面的數(shù)組中的每個元素,類似于for循環(huán)吧
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP