perl - 使用 Perl 比较两个远程文件

标签 perl shell diff

我有一个文件路径数组:

@files = ('/home/.../file.txt', '/home/.../file2.txt',...);

我有多个远程计算机,具有类似的文件结构。如何使用 Perl 区分这些远程文件?

我想到使用 Perl 反引号,ssh并使用 diff,但我遇到 sh 的问题(它不喜欢 diff <() <() )。

是否有一种好的 Perl 方法可以比较至少两个远程文件?

最佳答案

使用rsync将远程文件复制到本地机器,然后使用diff找出差异:

use Net::OpenSSH;

my $ssh1 = Net::OpenSSH->new($host1);
$ssh1->rsync_get($file, 'master');

my $ssh2 = Net::OpenSSH->new($host2);
system('cp -R master remote');
$ssh2->rsync_get($file, 'remote');

system('diff -u master remote');

关于perl - 使用 Perl 比较两个远程文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559653/

相关文章:

arrays - 如何在 Perl 中按列对数组或表进行排序?

perl - 在此Perl代码中 '@('在做什么?

shell - 如何使用awk删除以 "C"开头的行?

python - 根据python中的条件区分两列 Pandas 数据框

python - 如何将一个大的字典序列化为一个磁盘文件,这样小的修改不需要完全重写,而只需要几个字节?

mysql - 使用用户输入在 .SQL 查询文件中搜索和替换的 Perl 脚本

perl - 哈希键中哪些字符有效?

linux - 按日期将 Linux 终端输出记录到文件?

linux - 遍历文件并解析占位符变量

json - 比较两个 json 文件 : shell scripting