Questions tagged «uniq»


7
如何删除.bash_history中的重复项并保留顺序?
我非常喜欢使用control+r递归搜索命令历史记录。我发现了一些喜欢使用的不错的选择: # ignore duplicate commands, ignore commands starting with a space export HISTCONTROL=erasedups:ignorespace # keep the last 5000 entries export HISTSIZE=5000 # append to the history instead of overwriting (good for multiple connections) shopt -s histappend 对我来说,唯一的问题是erasedups仅擦除连续的重复项-因此使用以下命令字符串: ls cd ~ ls 该ls命令实际上将被记录两次。我考虑过定期运行cron: cat .bash_history | sort | uniq > temp.txt …

4
如何仅获得唯一结果而不必对数据进行排序?
$ cat data.txt aaaaaa aaaaaa cccccc aaaaaa aaaaaa bbbbbb $ cat data.txt | uniq aaaaaa cccccc aaaaaa bbbbbb $ cat data.txt | sort | uniq aaaaaa bbbbbb cccccc $ 我需要的结果是显示原始文件中的所有行,删除所有重复项(而不仅仅是连续的重复项),同时保持文件中语句的原始顺序。 在此示例中,我实际上正在寻找的结果是 aaaaaa cccccc bbbbbb 我uniq一般如何执行此广义操作?

2
awk'!a [$ 0] ++'如何工作?
这种单行代码无需预先排序即可从文本输入中删除重复的行。 例如: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ 我在互联网上找到的原始代码为: awk '!_[$0]++' 这让我更加困惑,因为我_在awk中有特殊的含义,就像在Perl中一样,但事实证明,这只是数组的名称。 现在,我了解了单线背后的逻辑: 每条输入行都用作哈希数组中的键,因此,完成后,哈希按到达顺序包含唯一的行。 我想学习的是awk如何准确地解释此表示法。例如,爆炸符号(!)的含义以及此代码段的其他元素。 它是如何工作的?

4
uniq为何还不够独特,以至于也只有uniq --unique?
这是来自pastebin的随机文件上的命令: wget -qO - http://pastebin.com/0cSPs9LR | wc -l 350 wget -qO - http://pastebin.com/0cSPs9LR | sort -u | wc -l 287 wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq | wc -l 287 wget -qO - http://pastebin.com/0cSPs9LR | sort | uniq -u | wc -l 258 手册页不清楚该-u标志在做什么。有什么建议吗?
35 uniq 


12
成对删除重复行?
我今天遇到了这个用例。乍一看似乎很简单,但是随便摆弄sort,uniq,sed并awk透露,这是平凡的。 如何删除所有 成对的重复行?换句话说,如果给定行的重复数为偶数,则将其全部删除;如果重复行数为奇数,请删除除一行以外的所有行。(可以假设输入是排序的。) 干净优雅的解决方案是可取的。 输入示例: a a a b b c c c c d d d d d e 输出示例: a d e

1
如何删除大型的多GB文本文件中的重复行?
我的问题与此问题类似,但有两个不同的约束: 我有一个很大的\n定界词表-每行一个词。文件大小从2GB到最大10GB不等。 我需要删除所有重复的行。 该过程可以在删除重复项的过程中对列表进行排序,但不是必需的。 分区上有足够的空间来容纳输出的新的唯一单词列表。 我已经尝试了这两种方法,但是它们都因内存不足错误而失败。 sort -u wordlist.lst > wordlist_unique.lst awk '!seen[$0]++' wordlist.lst > wordlist_unique.lst awk: (FILENAME=wordlist.lst FNR=43601815) fatal: assoc_lookup: bucket-ahname_str: can't allocate 10 bytes of memory (Cannot allocate memory) 我还可以尝试其他哪些方法?

2
uniq -t是做什么的?
我有一些来自2003年的旧代码,其中使用-t了uniq命令选项。由于可能不再支持该选项,因此会引发错误。 这是使用命令的片段: egrep -n "{ IA32_OP" ia32-decode.c | \ awk '{ print $1 $3 $4 }' | \ sort -t '(' +1 | \ uniq -t ':' -f 1 | \ sed 's/\(.*\)\:IA32_OP(\(.*\)),/#define IA32_OP_\2 \1/g' >> ia32_opcodes.h 那时候那个选项做了什么?我可以用什么代替该命令?
15 uniq 

4
根据匹配字段对列总和
我有一个以下格式的大文件: 2 1019 0 12 2 1019 3 0 2 1021 0 2 2 1021 2 0 2 1022 4 5 2 1030 0 1 2 1030 5 0 2 1031 4 4 如果第2列中的值匹配,我想对两行的第3列和第4 列中的值求和,否则仅对唯一行中的值求和。 所以我希望的输出看起来像这样: 2 1019 15 2 1021 4 2 1022 9 2 1030 6 2 1031 …

5
在保持顺序的同时删除相邻的重复行
我有一个带有一列的文件,每个文件的名称重复多次。我想将每个重复压缩为一个,同时保留与相同名称的其他重复不相邻的任何相同名称的重复。 例如,我想将左侧转向右侧: Golgb1 Golgb1 Golgb1 Akna Golgb1 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna Akna Spata20 Spata20 Spata20 Golgb1 Golgb1 Golgb1 Akna Akna Akna 这就是我一直在使用的perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt 方法:但是,此方法仅使左边代表一个(即,Golb1和Akna不再重复)。 有没有一种方法可以为每个块保留唯一的名称,同时保留在多个不相邻的块中重复的名称?
11 awk  sed  sort  uniq 

2
我的“ uniq”或“ sort -u”行哪里去了,带有一些unicode字符
以下代码段中发生了什么?我没有得到预期的输出。 我认为这是一个错误,但是它发生在2个不同的程序(uniq和sort)上,所以我怀疑这与...有关,嗯,我不知道该怎么办。 前4个示例中的前3个有效,但第4个失败! 我希望所有字符都具有相同的行为。 即。打印出2行(从输入的3行)...但是在第4种情况下,我只有1行(对于sort -u和uniq);两条相同的林消失了! 我已将输出'\ n'转换为空格以实现视图的紧凑性。 我正在使用uniq并从(GNU coreutils)7.4 排序 ...在Ubuntu 10.04.3 LTS桌面上运行。 剧本: { locale -k LC_COLLATE echo for c1 in x 〼 ;do for c2 in z 〇 ;do echo -n "asis : "; echo -e "$c1\n$c2\n$c2" |tr '\n' ' ';echo echo -n "uniq : "; echo …

5
有效地合并/排序/唯一的大量文本文件
我正在尝试天真: $ cat * | sort -u > /tmp/bla.txt 失败与: -bash: /bin/cat: Argument list too long 因此,为了避免一个愚蠢的解决方案(创建一个巨大的临时文件): $ find . -type f -exec cat {} >> /tmp/unsorted.txt \; $ cat /tmp/unsorted.txt | sort -u > /tmp/bla.txt 我虽然可以使用文件一个一个地处理文件(这样可以减少内存消耗,并且更接近流传输机制): $ cat proc.sh #!/bin/sh old=/tmp/old.txt tmp=/tmp/tmp.txt cat $old "$1" | sort -u > …
8 shell  sort  uniq 


3
Linux中最快的`uniq`工具
我的文本文件很大(1.5 G), 我想知道Linux中最快,更可靠的工具是什么。 我通常使用: awk '!x[$0]++' file.txt 但是当我使用htop命令时,我看到我的内存使用量正在增加。 我想知道什么是处理大型文件最快,更可靠的方法。 uniq? sort? sed? awk? 为什么?
8 sed  awk  memory  sort  uniq 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.