gpt4 book ai didi

perl - 解释这个在 2 个文件中显示公共(public)行的 perl 代码

转载 作者:行者123 更新时间:2023-12-03 10:59:30 24 4
gpt4 key购买 nike

这个 perl 单行如何显示 2 个文件共有的行?

perl -ne 'print if ($seen{$_} .= @ARGV) =~ /10$/'  file1 file2

最佳答案

-n命令行选项将代码转换为等同于

while ($ARGV = shift @ARGV) {
open ARGV, $ARGV;
LINE: while (defined($_ = <ARGV>)) {
$seen{$_} .= @ARGV;
print $_ if $seen{$_} =~ /10$/;
}
}

在读取第一个文件时, scalar @ARGV1 .对于每一行, 1将附加到 %seen入口。

在读取第二个文件时, scalar @ARGV0 .因此,如果一行在文件 1 和文件 2 中,则条目将类似于 1110000 (在文件 1 中是 3 倍,在文件 2 中是 4 倍)。

我们只想准确地输出公共(public)线一次。当第一次在 file2 中看到公共(public)行时,我们会这样做,所以 $seen{$_}1110 .这表示为正则表达式 /10$/ : 字符串 10必须出现在最后。

关于perl - 解释这个在 2 个文件中显示公共(public)行的 perl 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com