gpt4 book ai didi

linux - unix - 文件中有多少条记录以及字符出现次数的分割

转载 作者:IT王子 更新时间:2023-10-29 00:36:46 26 4
gpt4 key购买 nike

是否有内置命令可以执行此操作,或者是否有人幸运地使用了执行此操作的脚本?

我想知道有多少记录(由特定 EOL 定义,例如“^%!”)有多少特定字符出现。 (按出现次数降序排列)

例如,对于这个示例文件:

jdk,|ljn^%!dk,|sn,|fgc^%!
ydfsvuyx^%!67ds5,|bvujhy,|s6d75
djh,|sudh^%!nhjf,|^%!fdiu^%!

建议输入:分隔符 EOL 和文件名作为参数。

bash/perl some_script_name ",|" "^%!" samplefile

期望的输出:

occs    count
3 1
2 1
1 2
0 2

这是因为第 1 条记录有一个分隔符,第 2 条记录有 2,第 3 条记录有 0,第 4 条记录有 3,第 5 条记录有 1,第 6 条记录有 0。

如果您能让定界符和 EOL 参数接受十六进制输入(即 2C7C)或普通字符输入(即 ,|),则加分。

最佳答案

脚本:

#!/usr/bin/perl
use strict;

$/ = $ARGV[1];
open my $fh, '<', $ARGV[2] or die $!;
my @records = <$fh> and close $fh;

$/ = $ARGV[0];
my %counts;
$counts{(split $_)-1}++ for @records;
delete $counts{-1};

print "$_\t$counts{$_}\n" for (reverse sort keys %counts);

测试:

perl script.pl ',|' '^%!' samplefile 

输出:

3   1
2 1
1 2
0 2

关于linux - unix - 文件中有多少条记录以及字符出现次数的分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159207/

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