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

Chinaunix

標(biāo)題: perl如何合并文本 [打印本頁]

作者: xiaomm250    時間: 2014-04-23 10:54
標(biāo)題: perl如何合并文本
假設(shè)一個文件目錄下有很多個txt文件,
但是并不知道文件名.也就是說這些文件名是很雜亂的.
比如:1.txt  2.txt ab.txt dwer.txt等.
對于1.txt里面如果某一行有perl,
則把這行輸入到 newfile.txt,如果某一行沒有perl,則不輸入
對于2.txt里面如果某一行有perl,
則把這行輸入到 newfile.txt,如果某一行沒有perl,則不輸入
.....................
把所有的該目錄下面的txt文件都這么搞一下.

請問用perl如何能辦到呢?

作者: pitonas    時間: 2014-04-23 12:40
這么搞一下
  1. my $dir = '/your/dir';
  2. @ARGV = glob "$dir/*.txt";

  3. open OUT, '>', 'newfile.txt' or die $!;

  4. while (<>) {
  5.     print OUT $_ if /perl/;
  6. }
復(fù)制代碼
回復(fù) 1# xiaomm250


   
作者: xiaomm250    時間: 2014-04-23 13:30
pitonas 發(fā)表于 2014-04-23 12:40
這么搞一下回復(fù) 1# xiaomm250


沒有任何運(yùn)行結(jié)果
作者: xiaomm250    時間: 2014-04-23 13:40
pitonas 發(fā)表于 2014-04-23 12:40
這么搞一下回復(fù) 1# xiaomm250


while(<>)
這個<>里面為什么啥都沒有呢?


我發(fā)現(xiàn)你的是正確的,只是我的文本里面沒有包含perl的行
作者: q1208c    時間: 2014-04-23 14:00
grep 'perl' *.txt > newfile.txt
作者: xiaomm250    時間: 2014-04-23 14:06
  1. open(OUT, '>', 'newfile.txt') or die $!;
  2. @files=glob('*.txt');
  3. foreach $file (@files)
  4. {
  5.     open(FH,"<$file") or die $!; @filedata=<FH>; close(FH);
  6.     foreach $line (@filedata)
  7.     {
  8.         print OUT $line;
  9.     }
  10. }
  11. close(OUT);
復(fù)制代碼
這是我的代碼,比較傻的那種代碼
作者: xiaomm250    時間: 2014-04-23 14:08
pitonas 發(fā)表于 2014-04-23 12:40
這么搞一下回復(fù) 1# xiaomm250


代碼太簡寫了,
我翻了小駱駝才明白,
原來<>從@ARGV里面讀取數(shù)據(jù)
作者: skyyy90    時間: 2014-04-23 14:25
學(xué)習(xí)了,豁然開朗。。。:wink:
作者: xiaomm250    時間: 2014-04-23 14:29
skyyy90 發(fā)表于 2014-04-23 14:25
學(xué)習(xí)了,豁然開朗。。。


怎么豁然開朗了呀?能說說嗎?
作者: jason680    時間: 2014-04-23 15:28
回復(fù) 1# xiaomm250

1. using grep
  grep "perl" *.txt > newfile

2. using perl
  ### file: grep.pl ####
  #!/usr/bin/perl
  use strict;
  use warnings;

  my $sKey = shift;
  while(<>){
    print  if(m/$sKey/);
  }
   
  ### command ###
  $ ./grep.pl "perl" *.txt > newfile

作者: xiaomm250    時間: 2014-04-24 14:07
jason680 發(fā)表于 2014-04-23 15:28
回復(fù) 1# xiaomm250

1. using grep



pitonas
2樓的pitonas居然用的是你的簽名
作者: jason680    時間: 2014-04-24 14:47
本帖最后由 jason680 于 2014-04-24 14:55 編輯

回復(fù) 11# xiaomm250

果然還是誤會了,我也一直覺得會“看”錯...

才在想如何跟他說......,就收到這個回復(fù)

在這先簡單澄清
jason680= jason680
pitonas= pitonas
兩者沒有關(guān)系,也互不相識。

最多只能說他對我的簽名,有高度認(rèn)同。
歡迎大家引用認(rèn)同簽名,不要誤會成是我本人就可以了
(但其pitonas簽名寫法會讓人誤會,會另外通知其修正)

如果大家,認(rèn)同簽名,可使用下面例子:

引用Jason680簽名所言:
程序是
依照寫出來(的code),跑出結(jié)果
不是依照你想出來的,得到結(jié)果
  
作者: xiaomm250    時間: 2014-04-24 14:55
jason680 發(fā)表于 2014-04-24 14:47
回復(fù) 11# xiaomm250

果然還是誤會了,我也一直覺得會“看”錯...


麻煩問一下,簽名是怎么改的,我比較認(rèn)同你的簽名
作者: jason680    時間: 2014-04-24 15:01
回復(fù) 13# xiaomm250

最上方的  設(shè)置 ==> 個人信息 ==> 個人簽名

歡迎引用認(rèn)同簽名,不會產(chǎn)生誤會即可。
   
作者: xiaomm250    時間: 2014-04-24 15:11
jason680 發(fā)表于 2014-04-24 15:01
回復(fù) 13# xiaomm250

最上方的  設(shè)置 ==> 個人信息 ==> 個人簽名


是不是我的等級還不夠高,因此就沒有個人簽名設(shè)置選項??????????
作者: jason680    時間: 2014-04-24 15:20
回復(fù) 15# xiaomm250

maybe

sorry, I don't know ...
   
作者: pitonas    時間: 2014-04-24 17:50
{:2_169:} 我被你打敗了
你可以用我?guī)煾档膱D像
我不能用我?guī)煾档暮灻?br />
回復(fù) 11# xiaomm250pitonas
2樓的pitonas居然用的是你的簽名



   




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2