- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下文件.txt:
AAAA
BBBB
AAAA
CCCC
EEEE
AAAA
并且我已经编写了一个脚本来计算重复项的数量,将它们从最高的重复项到最低的重复项进行排序并打印它们。喜欢:
AAAA : 3
BBBB : 1
CCCC : 1
EEEE : 1
脚本是:
use v5.14;
use strict;
my %map;
chomp(my @chks = <FILE>);
foreach my $load (@chks) {
$map{$load} += 1;
}
foreach my $key (sort keys %map) {
say "$key : $map{$key} "
}
但输出结果如下:
: 3
: 1
: 1
: 1
为什么看不到$key的值?
最佳答案
答案是您的输入文件来自使用 CR LF 作为行终止符的 Windows 平台。当在同一平台上使用 Perl 读取文件时,通常会在输入时删除 CR,但如果您使用 Linux 系统读取文件,那么它将保留在原位。 Perl 的 chomp
将只删除 LF,将 CR 留在每个散列键值的末尾。这将导致输出在打印 key 时被覆盖
解决方案是使用 :crlf
PerlIO 层打开文件,或者使用 chomp
该程序肯定还有更多内容,因为您不会在任何地方打开
FILE
。此外,您按照散列键的词法顺序而不是值的数字顺序对输出进行排序
这是我编写代码的方式。
:crlf
层导致 CR LF 行尾在输入时仅转换为 LF,chomp
现在将正常运行,只留下每行中的文本
use strict;
use warnings 'all';
my $filename = 'myfile.txt';
my @chks = do {
open my $fh, '<:crlf', $filename or die qq{Unable to open "$filename" for input: $!};
<$fh>;
};
chomp @chks;
my %map;
++$map{$_} for @chks;
for my $key ( sort { $map{$b} <=> $map{$a} } keys %map ) {
print "$key : $map{$key}\n";
}
输出
AAAA : 3
CCCC : 1
BBBB : 1
EEEE : 1
正如我所说,除了使用 :crlf
层,您还可以使用 chomp @chks
替换为 s/\R\z//for @chks
。 \R
将匹配来自任何系统的任何行终止符:在本例中为 CR LF 字符对
关于珀尔 : Counting Duplicates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36529992/
我有一个内部表,里面有 108 个条目。从 9 到 9 个条目重复条目,我想删除这些重复项。由于它们完全相同,我使用了 delete adjacent duplicates from itab com
在 Team Foundation Server (TFS) 中链接两个工作项 (WI) 时,在什么情况下将“Duplicate”和“Duplicate Of”区分为“链接类型”是有意义的? 如何处理
ld: duplicate symbol _velocityX in \ /Users/Student/Library/Developer/Xcode/DerivedData/finalproject
我使用 PHP 和 Mysql。 此 SQL 有效: INSERT INTO products (id, title, description) VALUES (10, 'va
我有一个大数据框 (120000x40),我尝试在每一行中找到重复项并显示它们。这就是我的尝试: 创建数据框 import pandas as pd df = pd.DataFrame({'col1'
我是 mySQL 和 PHP 的新手,请多多包涵。 如果我的查询有重复字段,我该如何做到这一点,检索到的数据将具有重复查询字段的重复数据。 一个例子是这样的: 查询 id = 34, 54, 21,
我一直遇到这个错误,但我无法理解它,因为它提示一个值恰好出现一次。 Exception in thread "main" java.lang.IllegalStateException: Duplic
我有一个带有 Vuejs 和 Laravel 的 Web 应用程序 我想使用 CKEditor 5 我安装了依赖项 npm install --save @ckeditor/ckeditor5-vue
我有一个包含以下数据的 csv 文件: Id,Name,Type,date 1,name1,employee,25/04/2017 2,name2,contrator,26/04/2017 3,nam
import CKEditor from '@ckeditor/ckeditor5-react'; import ClassicEditor from '@ckeditor/ckeditor5-bui
表定义: CREATE TABLE PositionalDataNGS ( Date DATE, Time TIME(3) , X FLOAT(5), Y FLOAT(5), D FLOAT(5) ,
我目前正在做一个项目,我要处理数以千计的数据包。现在,我记录每个数据包的 IP 和 MAC 地址以及一些其他信息。为了存储所有这些,我使用 MySQL 并且我的脚本是用 Node.js 编写的。目前我
I am using MySQL 5.1.56, MyISAM. My table looks like this:我使用的是MySQL 5.1.56,MyISAM。我的桌子是这样的: CR
我是新来的,对 SQL 比较陌生。我有一个类似这样的表: [Pk], [Case_No], [Status], [Open_Date], [Close_Date], [Case_Age], [Repo
为什么会收到此警告? warning No duplicate props allowed react/jsx-no-duplicate-props# 它显示的是第28行,但没有使用 Prop 。 最
是否有任何函数或方法可以在 python 2.7 中递归实现此目的? Input : ['and', ['or', 'P', '-R', 'P'], ['or', '-Q', '-R', 'P']]
我正在分析 hadoop 中的数据。有一些重复条目,其中 A、B 列重复,而 C 列不同。我想要做的是仅识别 A、B 重复项,然后为每个重复项打印出 C 列的不同值。 示例数据: row, data
您好,感谢阅读并可能对我有所帮助 我的问题的简要说明: 我正在将数据从一个 Firebird 数据库复制到另一个(称为 V14),并且我正在使用 IBExpert 来执行此操作。这些表的名称相同并且具
我想制作一张很像下面的图片: 我想使用 seaborn 使图表看起来漂亮,并让我自己以后更容易使用 facetgrids(我有十个不同的数据集,我想在同一个图表中显示。) 我在 seaborn 中找到
我在两列“user_id”和“project_id”上有一个复合唯一键。 当我尝试对单行或多行运行 DELETE 查询时,出现错误。 ERROR 1062: 1062: Duplicate entry
我是一名优秀的程序员,十分优秀!