草庐IT

linux - "sort filename | uniq"不适用于大文件

我可以从小文本文件中删除重复条目,但不能从大文本文件中删除。我有一个4MB的文件。文件的开头如下所示:aaaahaahedaahedaahingaahingaahsaahsaalaaliiaaliiaaliisaaliis...我想删除重复项。例如,“aahed”出现了两次,而我只希望它出现一次。无论我尝试过什么单行,大列表都不会改变。如果输入:排序big_list.txt|独特|少我明白了:aaaahaahedaahed但是,如果我从该文本文件的顶部复制一小段文字,然后对这一小段数据重新运行该命令,它会按预期进行。这些程序是否因为文件太大而拒绝排序?我不认为4MB很大。它不会输出警告

linux - 一起使用 linux 命令 "sort -f | uniq -i"忽略大小写

我试图在包含两列的数据列表中查找唯一和重复的数据。我真的只是想比较第1列中的数据。数据可能如下所示(由制表符分隔):Whatareyoudoing?Checosastaifacendo?WHATAREYOUDOING?Chediavolostaifacendo?whatareyoudoing?Qualèiltuoproblemaamico?所以我一直在玩以下东西:排序时不忽略大小写(只是“排序”,没有-f选项)减少了重复呆呆的'{FS="\t";打印$1}'EN-IT_Corpus.txt|排序|uniq-i-D>欺骗忽略大小写的排序("sort-f")给我更多的重复项呆呆的'{FS=

linux - 使用 Linux 剪切、排序和 uniq

我有一个包含人口、年份和县的列表,我需要切割该列表,然后找到uniq县的数量。列表是这样开始的:#Population,Year,County3900,1969,Beaver3798,1970,Beaver3830,1971,Beaver3864,1972,Beaver3993,1973,Beaver3976,1974,Beaver4064,1975,Beaver这个列表还有更多,还有更多的县。我必须剪出县列,对其进行排序,然后输出uniq县的数量。我试过这个命令:cut-c3-list.txt|sort-k3|uniq-c但是这并没有切掉第三个列表,也没有按字母顺序排序。我做错了什么

linux - 合并 uniq -c 的结果

我有许多包含命令结果的文件:uniq-csome_file>some_file.out例如:1.输出:1a2b4c2.输出2b8c我想合并这些结果,所以我得到:1a4b12c我认为sort或uniq可以处理它,但我没有看到任何与之相关的选项。编写一些ruby​​/perl脚本是可行的方法之一,但我想使用核心*nix命令(如提到的sort和uniq)轻松完成。编辑:要清楚。我没有原始文件,我必须合并*.out文件。感谢您的帮助! 最佳答案 用awk试试:awk'{count[$2]+=$1}END{for(elemincount)pr

linux - 为什么 "uniq"将相同的词算作不同的?

我想计算文件中单词的出现频率,其中单词是一行一行的。该文件非常大,所以这可能是问题所在(在此示例中它计为300k行)。我执行这个命令:cat.temp_occ|uniq-c|sort-k1,1nr-k2>distribution.txt问题是它给了我一个小错误:它认为相同的词是不同的。例如,第一个条目是:306continua278apertura211eventi189murah182giochi167giochi如您所见,giochi重复了两次。在文件的底部,情况变得更糟,看起来像这样:1win1win1win1win1win1win1win1win1win1winchester1

arrays - 制作 uniq 数组最快的方法是什么?

我有以下情况。我有一大堆随机字符串。应尽快使该数组唯一。现在通过一些基准测试,我发现ruby​​的uniq非常慢:require'digest'require'benchmark'#makeanicerandomarrayofstringslist=(1..100000).to_a.map(&:to_s).map{|e|Digest::SHA256.hexdigest(e)}list+=listlist.shuffledefhash_uniq(a)a_hash={}a.eachdo|v|a_hash[v]=nilenda_hash.keysendBenchmark.bmdo|x|x.r

ruby - Array#uniq 与 Ruby 1.8.7 中的 block 等效

Array#uniq在Ruby1.9中有这种行为c=["a:def","a:xyz","b:abc","b:xyz","c:jkl"]c.uniq{|s|s[/^\w+/]}#=>["a:def","b:abc","c:jkl"]它可以占用一个区block并根据我们提供的内容提供独特的值(value)。但是,这在Ruby1.8中不起作用。如何在ruby​​1.8中创建此功能? 最佳答案 安装Marc-AndréLaFortune's向后移植gem:https://github.com/marcandre/backports它具有1.

ruby - 枚举器的 uniq::Lazy

我正在处理一些有很多重复行的东西:#=>[[1,"A",23626],[1,"A",31314],[2,"B",2143],[2,"B",5247]]putsxs#=>[[1,"A"],[2,"B"]]putsxs.uniq{|x|x[0]}.map{|x|[x[0],x[1]]}但是xs很大。我正在尝试延迟加载它,但是Enumerator#Lazy没有uniq方法。我如何懒惰地实现这一目标? 最佳答案 moduleEnumeratorLazyUniqrefineEnumerator::Lazydorequire'set'defun

ruby - 如何 "uniq"一个数组,保留每个元素的最后一个副本而不是第一个?

当Array#uniq被调用时,新数组保留每个副本的第一次出现:["a","b","c","a"].uniq#=>["a","b","c"]标准库是否提供了一种干净的方法来“uniq”数组,但保留重复元素的最后出现?例如:["b","c","a"] 最佳答案 您可以通过反转数组、唯一化它,然后再次将其反转为原始顺序来完成此操作:["a","b","c","a"].reverse.uniq.reverse#=>["b","c","a"] 关于ruby-如何"uniq"一个数组,保留每个元素

ruby - 参数化数组#uniq(即uniq_by)

这个问题在这里已经有了答案:UniqbyobjectattributeinRuby(15个答案)关闭9年前。如果我不想从数组中删除重复元素,而是想删除具有特定共同属性的元素,该怎么办?具体来说,我想从具有重复“本质”的数组中删除所有字符串,其中本质定义如下:classStringdefessencedowncase.gsub('&','and').gsub(/[^a-z0-9]/,'')endend我想要这样的东西:['a','A','b'].uniq_by(&:essence)#=>['a','b'](or['A','b'];Idon'treallycare)完成此任务的最佳方法是什