标签: uniq

合并uniq -c的结果

我有很多带有命令结果的文件:uniq -c some_file> some_file.out

例如:1.out:

 1 a
 2 b
 4 c

2.out

 2 b
 8 c

我想合并这些结果,所以我得到:

 1 a
 4 b
 12 c

我认为sort或uniq可以处理它,但我没有看到任何与之相关的选项.编写一些ruby/perl脚本是可行的方法之一,但我想使用core*nix命令(如提到的sort和uniq)轻松地完成它.

编辑:要清楚.我没有原始文件,我必须合并*.out文件.

感谢帮助!

linux sorting merge uniq

5
推荐指数
1
解决办法
1183
查看次数

为什么uniq -c输出空格而不是\ t?

我使用uniq -c一些文本文件.它的输出如下:

123(space)first word(tab)other things
  2(space)second word(tab)other things
Run Code Online (Sandbox Code Playgroud)

....

所以我需要提取总数(如上面的123和2),但我无法弄清楚如何,因为如果我按空格分割这一行,它会喜欢这个['123', 'first', 'word(tab)other', 'things'].我想知道它为什么不用标签输出?

以及如何提取shell中的总数?(我终于用python,WTF提取它)

更新:对不起,我没有正确描述我的问题.我不想总和总数,我只想用(制表符)替换(空格),但它不影响单词中的空格,因为我之后仍然需要数据.像这样:

123(tab)first word(tab)other things
  2(tab)second word(tab)other things
Run Code Online (Sandbox Code Playgroud)

shell awk uniq

5
推荐指数
2
解决办法
5636
查看次数

Perl中不区分大小写的唯一数组元素

我使用模块导出的uniq函数,List :: MoreUtils来查找数组中的uniq元素.但是,我希望它以不区分大小写的方式查找uniq元素.我怎样才能做到这一点?

我使用Data :: Dumper转储了Array的输出:

#! /usr/bin/perl

use strict;
use warnings;
use Data::Dumper qw(Dumper);
use List::MoreUtils qw(uniq);
use feature "say";

my @elements=<array is formed here>;

my @words=uniq @elements;

say Dumper \@words;
Run Code Online (Sandbox Code Playgroud)

输出:

$VAR1 = [
          'John',
          'john',
          'JohN',
          'JOHN',
          'JoHn',
          'john john'
        ];
Run Code Online (Sandbox Code Playgroud)

预期的输出应该是:约翰,约翰约翰

只有2个元素,其余全部应该被过滤,因为它们是同一个单词,只有区别在于大小写.

如何删除忽略大小写的重复元素?

perl uniq

5
推荐指数
2
解决办法
1333
查看次数

在mac bash终端中使用shell命令时出现"非法字节序列"错误

尝试从MacOS bash shell中的大文件中提取非英语字符时出现"非法字节序列"错误.这是我尝试使用的脚本:

sed 's/[][a-z,0-9,A-Z,!@#\$%^&*(){}":/_-|. -][\;''=?]*//g' < $1 >Abhineet_extract1.txt;
sed 's/\(.\)/\1\
/g' <Abhineet_extract1.txt | sort | uniq |tr -d '\n' >&1;
rm Abhineet_extract1.txt;
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

uniq: stdin: Illegal byte sequence
Run Code Online (Sandbox Code Playgroud)

"+?

unix bash shell sed uniq

5
推荐指数
1
解决办法
1万
查看次数

bash tail在一个实时日志文件中,计算具有相同日期/时间的uniq行

我正在寻找一种在实时日志文件上拖尾的好方法,并显示具有相同日期/时间的行数.

目前这是有效的:

 tail -F /var/logs/request.log | [cut the date-time] | uniq -c
Run Code Online (Sandbox Code Playgroud)

但性能不够好.延迟超过一分钟,并且每次以少量线路输出.

任何的想法?

bash logging tail uniq

5
推荐指数
1
解决办法
1万
查看次数

“sort -u”和“uniq”有什么区别?

我需要对文本文件进行排序并删除重复项的脚本。大多数(如果不是全部)示例都使用这种sort file1 | uniq > file2方法。在里面man sort中,有一个 -u 选项可以在排序时执行此操作。

有理由使用其中一种而不是另一种吗?也许可以使用 -u 选项?还是内存/速度问题?

sorting bash uniq

5
推荐指数
2
解决办法
4798
查看次数

排序并保留具有最高值的唯一副本

我有一个如下所示的文件,我想保留在第三个字段上具有最高值的第一个和第二个字段之间的组合(带有箭头的那些,实际文件中不包含箭头)。

1   1   10
1   1   12        <- 
1   2   6         <-
1   3   4         <- 
2   4   32
2   4   37
2   4   39
2   4   40        <- 
2   45  12
2   45  15        <- 
3   3   12
3   3   15
3   3   17
3   3   19        <- 
3   15  4
3   15  9         <- 
4   17  25
4   17  28
4   17  32
4   17  36        <- 
4   18  4         <- 
Run Code Online (Sandbox Code Playgroud)

为了有这样的输出:

1   1   12
1   2   6 …
Run Code Online (Sandbox Code Playgroud)

unix sorting uniq

5
推荐指数
1
解决办法
3486
查看次数

即使在`sort`之后,`uniq`仍然重复一些值

参考文件: http : //snap.stanford.edu/data/wiki-Vote.txt.gz

(它是一个磁带存档,其中包含一个名为 的文件Wiki-Vote.txt

文件中的前几行包含以下内容, head -n 10 Wiki-Vote.txt

# Directed graph (each unordered pair of nodes is saved once): Wiki-Vote.txt 
# Wikipedia voting on promotion to administratorship (till January 2008). 
# Directed edge A->B means user A voted on B becoming Wikipedia administrator.
# Nodes: 7115 Edges: 103689
# FromNodeId    ToNodeId
     30          1412
     30          3352
     30          5254
     30          5543
     30          7478
     3            28
Run Code Online (Sandbox Code Playgroud)

我想找到图中的节点数(尽管它已经在第 3 行中给出)。我运行了以下命令,

awk '!/^#/ { print $1; print $2; }' Wiki-Vote.txt …
Run Code Online (Sandbox Code Playgroud)

linux posix carriage-return uniq

5
推荐指数
1
解决办法
86
查看次数

用awk删除包含唯一第一个字段的行?

希望仅打印具有重复的第一个字段的行.例如,从看起来像这样的数据:

1 abcd
1 efgh
2 ijkl
3 mnop
4 qrst
4 uvwx
Run Code Online (Sandbox Code Playgroud)

应打印出来:

1 abcd
1 efgh
4 qrst
4 uvwx
Run Code Online (Sandbox Code Playgroud)

(仅供参考 - 我的数据中第一个字段的长度不总是1个字符)

sorting awk grep sed uniq

4
推荐指数
1
解决办法
1795
查看次数

bash添加具有相同第一列的列

我有一个文件,在第一列中有一个名称,在第二列中有计数.它按名称排序.

    dan 3355
    dan 667
    dan 889
    frank 8
    frank 99
    frank 90
    ian 9
Run Code Online (Sandbox Code Playgroud)

我想结合所有相同的名称并输出每个名称的总数:

    dan 4911
    frank 197
    ian 9
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用uniq来获取相同行的总数,但是如何保留我在数据中的计数?

unix bash uniq

4
推荐指数
1
解决办法
1615
查看次数

标签 统计

uniq ×10

bash ×4

sorting ×4

unix ×3

awk ×2

linux ×2

sed ×2

shell ×2

carriage-return ×1

grep ×1

logging ×1

merge ×1

perl ×1

posix ×1

tail ×1