Perl脚本常用操作
生活随笔
收集整理的這篇文章主要介紹了
Perl脚本常用操作
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、Perl腳本連接數(shù)據(jù)庫
#! /usr/bin/perl use URI::Escape; use POSIX qw(strftime); use DBI; require "public.pl"; #$file=$ARGV[0]; #獲取第一個輸入數(shù)據(jù) my $source_file = "read.log"; #讀取文件 my $dest_file = "write.txt"; #寫入文件 my $db = DBI->connect("DBI:mysql:database=mysql;host=127.0.0.1", "root", "", {'RaiseError' => 1}); open (FILE,"<$source_file") or die "Cannot open file $!\n"; open (SORTED,">$dest_file") or die "Cannot open file $!\n"; while(defined (my $line = <FILE>)) {chomp($line); #讀取行#@arr=split(/\s/,$line);#$app=$arr[0];#$tel=$arr[1];$log="log201706";$sql="select pid from $log.table where ... limit 1";print $sql."\n";my $rs = $db -> prepare($sql);$rs -> execute;if($rs->rows ne "0"){ while(my $tmpRow = $rs->fetchrow_hashref()){$p=$tmpRow->{'pid'};print SORTED "$line\t$p\n";}}else{print SORTED "$line\tNO PID\n";} } close (FILE); close (SORTED);二、perl腳本去重(一個文件)
去除重復行,并記錄每行出現(xiàn)的次數(shù)
#!/usr/bin/perl use warnings; use strict; my %hash; my $source_file=$ARGV[0]; #輸入文件 my $dest_file = $ARGV[1]; #輸出文件 open (FILE,"<$source_file") or die "Cannot open file $!\n"; open (SORTED,">$dest_file") or die "Cannot open file $!\n"; while(defined (my $line = <FILE>)) {#從文件中取出要去重的數(shù)據(jù)chomp($line); #去除空格#$line=~ s/[\r\n]+//mg;#取出換行符$hash{$line} += 1; } foreach my $k (keys %hash) {print SORTED "$k\t$hash{$k}\n"; #改行打印出列和該列出現(xiàn)的次數(shù)到目標文件 } close (FILE); close (SORTED);注:linux命令也可以實現(xiàn)此操作:sort test.txt | uniq -c
三、perl腳本去重(倆個文件)
獲取倆個文件中的重復行,并記錄重復次數(shù)
#!/usr/bin/perl print 'hello'; use warnings; use strict; my %hash; my $source_file = "num"; #去重文件1 my $source_file1 = "num1"; #去重文件2 my $dest_file = "num2"; #結果文件 open (FILE,"<$source_file") or die "Cannot open file $!\n"; open (FILE1,"<$source_file1") or die "Cannot open file $!\n"; open (SORTED,">$dest_file") or die "Cannot open file $!\n"; while(defined (my $line = <FILE>)) { $line=~s/[\r\n]$//;chomp($line);$hash{$line} +=1;# print "$line,$hash{$line}\n"; } while(defined (my $line = <FILE1>)) { $line=~s/[\r\n]$//;chomp($line);$hash{$line} +=1;# print "$line,$hash{$line}\n"; } foreach my $k (keys %hash) { if($hash{$k}!=1){print "$k,$hash{$k}\n";print SORTED "$k\n";#改行打印出列和該列出現(xiàn)的次數(shù)到目標文件} } close (FILE1); close (FILE); close (SORTED);總結
以上是生活随笔為你收集整理的Perl脚本常用操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [html] 如何禁止input输入的
- 下一篇: latex排版基础_排版基础分类