#比较两个目录中的文件内容是否相同
#!/bin/perl
if($#ARGV < 0)
{
print "usage:perl compare.pl dir1 dir2\n";
exit(-1);
}
#my($rec, $ref) = @ARGV;
#!/bin/perl
my($lat1,$lat2)=@ARGV;
system ( "dir \/b \/s \/O:N $lat1\\\*\.lat > lat1.list ");
system ( "dir \/b \/s \/O:N $lat2\\\*\.lat > lat2.list ");
my $dif=1;
open(dlat1, "<lat1.list") or die "3\n";
open(dlat2, "<lat2.list") or die "4\n";
open(result, ">result.log") or die "5\n";
$old = select result;
$|=1; #immediately write flush(result);
select $old;
my @alat1 = ();
my @alat2 = ();
@alat1 = <dlat1>;
@alat2 = <dlat2>;
my
$countout=@alat2
;
my $count=0;
my $count2=0;
#select (select (result),$|=1)[0];
print (result "result is\n");
$|++; # perl中的flush缓冲区 flush($tmp);
#close(result);
for my $latline1 (@alat1)
{
# open(result, ">>result.log") or die "6\n";
chomp $latline1;
$count2=0;
for my $latline2 (@alat2)
{
chomp $latline2;
$dif = &find_fileindir("$latline1","$latline2");
#$count2++;
#print "$count:$count2 :dif is $dif\n" ;
if($dif==0)
{
print (result "$latline1 is equal $latline2\n");
$|++; # perl中的flush缓冲区 flush($tmp);
#system ( "del /f /q $latline2");
last;
}
if($dif==1)
{
$count2++;
}
print "$count:$count2 :dif is $dif\n" ;
}
#print "count2 is $count2\n";
#print "countout is $countout\n";
if ($count2>=$countout)
{
print (result "$latline1 is not found\n");
$|++; # perl中的flush缓冲区 flush($tmp);
}
# close(result);
$count++;
#print "$count\n";
}
#$dif=&find_fileindir("$rec","$ref");
#print "dif is $dif";
close (dlat1);
close (dlat2);
close (result);
#下面函数比较两个文件的内容是否相同
sub find_fileindir()
{
local ($rec1,$ref1) = @_;
open(A, "$rec1") or die "1\n";
open(B, "$ref1") or die "2\n";
#open A,"a.txt";
#open B,"b.txt";
local @a=<A>;
local @b=<B>;
@a=map{split(/\s+/,$_)}@a;
#@a=map
split @a;
@b=map{split(/\s+/,$_)}@b;
#@b=map
split @b;
local
$a=@a
;
local
$b=@b
;
local $diff=0; #0代表相同,1代表不同
if($a<$b)
{
$a=$b;
}
for (0..$a-1)
{
if ($a[$_]==$b[$_])
{ next;}
else
{ $diff=1;return "$diff";}
}
#print "$diff\n";
return "$diff";
close(A);
close(B);
}
#比较两个目录中的文件内容是否相同#!/bin/perlif($#ARGV { print "usage:perl compare.pl dir1 dir2\n"; exit(-1);}#my($rec, $ref) = @ARGV;#!/bin/perlmy($lat1,$lat2)=@ARGV;system ( "dir \/b \/s \/O:N $
FastCGI包装器
(原始
文件
来自描述的链接,即 。该
文件
归于Denis S菲利莫诺夫)
这些脚本旨在与Apache的mod_fcgid一起使用。 如果没有对守护代码进行注释,并且套接字已更改为TCP / IP 1,则它们也可以与nginx一起使用。
随意使用这些脚本。 请考虑将更改退还给社区。
fastcgi-wrapper.pl
该包装程序几乎可以执行任何使用STDIN和STDOUT的操作。 最初为
Perl
脚本编写的,它应该只被用于任何东西,但
Perl
脚本,例如ELF二进制
文件
,Python的CGI脚本等。
该脚本的工作方式与mod_cgid相似,因为它仍会派生应用程序进程。
perl
-cgi-wrapper.pl
该脚本基于与上面的脚本
相同
的fastcgi-wrapper脚本,但是适用于获得最佳的
Perl
性能。 它不使用通常的fork-exec-解释机制(就像CGI一样)
OpusTools-
Perl
软件包
OpusTools-
perl
是用于处理在收集的并行数据的工具和脚本的集合。 有用于以各种方式读取,转换和处理数据的工具。 请注意,还有一个名为Python程序包,它提供相似的功能,但是即使存在一些重叠,这两个程序包也不涵盖
相同
类型的任务。
perl
Makefile.pl
make all
make install
需要以下
Perl
库
模块::安装
存档::邮编
DB_
文件
HTML ::实体
Lingua ::句子
Ufal :: UDPipe
XML ::解析器
XML ::作家
工具及其用法
该软件包包括许多可在命令行上使用的工具。 读取和处理数据的工具:
opus-read :读取并过滤句子对齐的语料库
opus-cat :从压缩的OPUS语料库
文件
集合
中
读取
文件
opus-udpipe :使用UDPipe解析OPUS语料库
使用Merkle树来检测
文件
系统何时更改。 目的是创建一种确定
文件
系统何时更改的有效方法,特别是
比较
两个假定彼此
相同
的
文件
系统。 预期的用例是将大型
文件
系统结构同步到远程位置,您希望在该位置知道何时更改了某个位置,以便可以更新另一个。 通常,可以为此目的使用rsync,但是在非常大的
文件
系统
中
,使用rsync计算校验和来确定差异可能会很昂贵。 此数据结构可用于确切确定
文件
系统的哪些部分已更改,这使您可以将rsync定位到仅该子树。
通过有效地计算每个
目录
(数据块哈希)和每个子树层次结构(子节点哈希)的校验和,vtree.pl将跨
文件
系统根创建Merkle树。 在传统的Merkle树
中
,仅树的根包含数据块哈希。 在此实现
中
,每个
目录
都隐式地视为树
中
的叶子。
数据块哈希
每个数据块都有整个
目录
内容
的MD5哈希值。
目录
D可能包含其他
目录
,常规
文件
,符号链接和“特殊”
文件
(例
(1)DIR *opendir(const char *pathname);
打开一个
目录
,并且返回一个DIR类型的指针
(2)struct dirent *readdir(DIR *dp);
读一个
目录
并且返回一个dirent类型的指针。
(3)void rewinddir(DIR *dp);
(4)long telldir(DIR *dp);
如果所声明的散列键字或者数组索引在它的散列或者数组
中
存在,那么这个函数返回真值。它不在乎对应的数值是真还是假,或者该值
是否
定义。
print "True\n" if $hash{$key};
print "Defined\n" if defined $hash{$key};
print "Exists\n" if exists
next if /^#/;#if($_=~/^#/的简写
chomp;
my @information =split;# my @information=split/\s+/,$_;的简写
next if(($inf
Perl
语言是一种强大的脚本语言,它可以轻松地操作
文件
和
目录
。下面是一些
Perl
文件
和
目录
常用操作:
1. 打开
文件
:使用open函数打开一个
文件
,可以指定
文件
名、模式和
文件
句柄。
2. 读取
文件
:使用<操作符读取
文件
,可以按行读取也可以按字符读取。
3. 写入
文件
:使用print函数写入
文件
,可以指定
文件
句柄。
4. 关闭
文件
:使用close函数关闭
文件
句柄。
5. 创建
目录
:使用mkdir函数创建一个新的
目录
。
6. 删除
目录
:使用rmdir函数删除一个空
目录
。
7. 列出
目录
下的
文件
:使用opendir函数打开一个
目录
,使用readdir函数读取
目录
下的
文件
名。
8. 删除
文件
:使用unlink函数删除一个
文件
。
9. 复制
文件
:使用File::Copy模块
中
的copy函数复制一个
文件
。
10. 移动
文件
:使用File::Copy模块
中
的move函数移动一个
文件
。
11. 重命名
文件
:使用rename函数重命名一个
文件
。
以上是
Perl
文件
、
目录
常用操作的一些示例,它们可以帮助您轻松地管理和操作
文件
和
目录
。