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

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2166 | 回復(fù): 9
打印 上一主題 下一主題

文件之間的替換 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-05-11 14:44 |只看該作者 |倒序?yàn)g覽
1.txt是名稱文件
2.txt是“名稱 + 內(nèi)容”文件

想把2.txt中所有的包含1.txt名稱的行都找出來(lái)。
  1. #!/usr/bin/perl -w
  2. use strict;

  3. my $a="2.txt";
  4. my $b="1.txt";
  5. open IN1, $a or die "can't open $a";
  6. open IN2, $b or die "can't open $b";
  7. open OUT, '>>', "out.txt" or die "can't open out.txt";

  8. my @data = <IN1>;
  9. my @names = <IN2>;
  10. foreach my $i (0..$#data){
  11.                  my @line2 = split(/\s+/,$data[$i]);
  12.                  my $name1 = shift @names;
  13.                  my $name2 = shift @line2;
  14.                  if ($name1 eq $name2){
  15.                 print OUT $data[$i];
  16.               }
  17.             }
  18. close IN1;
  19. close IN2;
  20. close OUT;
復(fù)制代碼
哪里不對(duì)啦

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-05-11 14:46 |只看該作者
舉幾個(gè)例子吧。。

文件內(nèi)容
期待結(jié)果啥的

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2011-05-11 14:53 |只看該作者
回復(fù) 2# Cu_fans


    例如,
1.txt中
song
zhang
wang
...


2.txt中
guan 135 658 687
song 214 354 547
zhang 264 364 784
xie 123 541 589
wang 201 265 847
han 021 521 854
...

得到 out.txt
song 214 354 547
zhang 264 364 784
wang 201 265 847
...

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2011-05-11 15:00 |只看該作者
grep -f 1.txt 2.txt 就出來(lái)了

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2011-05-11 15:05 |只看該作者
本帖最后由 xingzhou823 于 2011-05-11 15:14 編輯

回復(fù) 4# Cu_fans


    can't open perl script grep:No such file or directory .
是什么意思?

grep 函數(shù)我不會(huì)用

論壇徽章:
2
射手座
日期:2014-10-10 15:59:4715-16賽季CBA聯(lián)賽之上海
日期:2016-03-03 10:27:14
6 [報(bào)告]
發(fā)表于 2011-05-11 15:41 |只看該作者
回復(fù) 1# xingzhou823
  1. perl -lane 'if($#F==0){$a{$F[0]}=1}if($#F>0&&$a{$F[0]}){print $_}' 1.txt 2.txt
  2. song 214 354 547
  3. zhang 264 364 784
  4. wang 201 265 847
復(fù)制代碼

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2011-05-11 15:51 |只看該作者
回復(fù) 6# yinyuemi


    太復(fù)雜了,
可是我試了一下

can't find string terminator "'" anywhere befor EOF at -e line 1.

什么意思?

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2011-05-11 16:11 |只看該作者
回復(fù)  Cu_fans


    can't open perl script grep:No such file or directory .
是什么意思?

gr ...
xingzhou823 發(fā)表于 2011-05-11 15:05



shell下的grep 命令

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2011-05-11 16:12 |只看該作者
你的源程序存在點(diǎn)邏輯問(wèn)題。。 在你的基礎(chǔ)上稍微修改了下,應(yīng)該能滿足
  1. #!/usr/bin/perl -w
  2. use strict;

  3. my $a="2.txt";
  4. my $b="1.txt";
  5. open IN1, $a or die "can't open $a";
  6. open IN2, $b or die "can't open $b";
  7. open OUT, '>', "out.txt" or die "can't open out.txt";

  8. my @data = <IN1>;

  9. sub func
  10. {
  11.         my ($str, @arr) = @_;
  12.         for (my $i=0; $i<=$#arr; ++$i)
  13.         {
  14.                 chomp($arr[$i]);
  15.                 if ($str eq $arr[$i])
  16.                 {
  17.                         return 1;
  18.                 }
  19.         }
  20.        
  21.         return 0;
  22. }

  23. my @names = <IN2>;
  24. foreach my $i (0..$#data){
  25.                  my @line2 = split(/\s+/,$data[$i]);
  26.                  my $name2 = shift @line2;
  27.                  print "name2:", $name2,"\n";
  28.                  if (func($name2, @names))
  29.                  {
  30.                         print OUT $data[$i];
  31.                        }
  32.             }       
  33. close IN1;
  34. close IN2;
  35. close OUT;
復(fù)制代碼

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2011-05-11 16:14 |只看該作者
回復(fù) 8# Cu_fans


    我不懂這個(gè)。
麻煩你還是給我修改一下我那個(gè)吧,先讓我過(guò)了這關(guān),卡在這好難受啊
您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP