删除重复的行,同时保持行的顺序

somelooser28533
[root@server]# awk '!seen[$0]++' out.txt > cleaned
awk: (FILENAME=out.txt FNR=8547098) fatal error: internal error
Aborted
[root@server]#

“服务器”具有:8 GB RAM + 16 GB SWAP,x> 300 GB可用空间,amd64,台式机CPU。科学版Linux 6.6。没有其他东西可以运行来进行LOAD。Awk会在几秒钟后中止。out.txt为〜1.6 GB。GNU Awk 3.1.7。

问题:如何在保留行顺序的同时删除重复的行?大小写也很重要,例如:“ A”和“ a”是两个不同的行,必须保留它。但是“ a”和“ a”是重复的,仅需要第一个。

答案可能在任何情况下..如果awk对此不利。.那么perl / sed ..可能是什么问题?

[root@server]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 61945
max locked memory       (kbytes, -l) 99999999
max memory size         (kbytes, -m) unlimited
open files                      (-n) 999999
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 99999999
cpu time               (seconds, -t) unlimited
max user processes              (-u) 61945
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@server]# 

更新:我在RHEL机器上尝试了此操作,它没有异常终止,但是我没有时间等待它完成。.为什么SL linux与RHEL有所不同?

更新:我正在尝试在Ubuntu 14虚拟gues ..到目前为止,它可以工作!这不是一个无限的问题:mawk 1.3.3

root@asdf-VirtualBox:~# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 51331
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 51331
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
root@asdf-VirtualBox:~# 
芒登

我怀疑这会有所不同,但是,以防万一,这是在Perl中执行相同操作的方法:

perl -ne 'print if ++$k{$_}==1' out.txt

如果问题是将唯一的行保留在内存中,那将与awk您尝试的问题相同因此,另一种方法可能是:

cat -n out.txt | sort -k2 -k1n  | uniq -f1 | sort -nk1,1 | cut -f2-

怎么运行的:

  1. 在GNU系统上,cat -n将在每行前添加行号并在一定数量的空格之后加上一个<tab>字符。cat通过管道将此输入表示形式传递到sort

  2. sort-k2选项指示它在排序时仅考虑从第二个字段到行尾的字符,并且sort默认情况下在空白(或cat插入的空格和<tab>上分割字段
    当紧随其后时-k1n,首先sort考虑第二个字段,然后考虑第二个字段(在相同-k2字段的情况下),它考虑第一个字段,但按数字排序。因此,重复的行将按照出现的顺序进行排序。

  3. 结果将通过管道传递到uniq-被告知忽略第一个字段-f1也被空格隔开),并在原始文件中产生唯一行的列表,然后通过管道传递回sort
  4. 这次sort以数字方式对第一个字段cat插入的行号)进行排序,使排序顺序恢复为原始文件中的顺序,并将这些结果通过管道传递给cut
  5. 最后,cut删除由插入的行号catcut仅通过从第二个字段到行尾的打印来实现(并且cut默认的分隔符是<tab>字符)

为了显示:

$ cat file
bb
aa
bb
dd
cc
dd
aa
bb
cc
$ cat -n file | sort -k2 | uniq -f1 | sort -k1 | cut -f2-
bb
aa    
dd
cc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除重复的行,同时保持行的顺序

来自分类Dev

删除相邻的重复行,同时保持顺序

来自分类Dev

如何在保持空行的同时用awk删除重复的行?

来自分类Dev

MATLAB删除顺序重复的行

来自分类Dev

删除重复的行,同时保留底行

来自分类Dev

OCaml:从列表中删除重复项,同时保持右侧的顺序

来自分类Dev

从向量中删除重复的成员,同时保持顺序

来自分类Dev

如何在保持顺序向下的同时防止MySQL数据库中的重复列行

来自分类Dev

根据列删除重复的行,同时保持下一列的最大值

来自分类Dev

同时删除两列中的重复行

来自分类Dev

从文件中删除顺序不同的重复行

来自分类Dev

删除行以保持连续的重复值-Pandas

来自分类Dev

如何在使用R保持原始行顺序的同时按行提取唯一记录和重复记录?

来自分类Dev

如何在保持行顺序的同时从Pandas DataFrame采样

来自分类Dev

从数据框中删除行,并保持行编号顺序

来自分类Dev

从数据框中删除行,并保持行编号顺序

来自分类Dev

如何在Numpy中重复行并保持顺序?

来自分类Dev

在保持顺序的同时删除二维数组中的重复项

来自分类Dev

R-在保持记录顺序的同时对列表进行重复数据删除

来自分类Dev

如何在保持样式,单词顺序等的同时反转div中的行顺序

来自分类Dev

sql:如何删除重复的行(内容相同,但是顺序不同)

来自分类Dev

有条件地删除重复的行-啄顺序

来自分类Dev

如何按排序顺序从表中删除后续重复行?

来自分类Dev

合并列,同时保持行

来自分类Dev

重复每个元素n次,同时保持原始顺序

来自分类Dev

从DataGrid删除重复的行

来自分类Dev

删除重复的数据行

来自分类Dev

成对删除重复的行?

来自分类Dev

SQL删除重复的行

Related 相关文章

  1. 1

    删除重复的行,同时保持行的顺序

  2. 2

    删除相邻的重复行,同时保持顺序

  3. 3

    如何在保持空行的同时用awk删除重复的行?

  4. 4

    MATLAB删除顺序重复的行

  5. 5

    删除重复的行,同时保留底行

  6. 6

    OCaml:从列表中删除重复项,同时保持右侧的顺序

  7. 7

    从向量中删除重复的成员,同时保持顺序

  8. 8

    如何在保持顺序向下的同时防止MySQL数据库中的重复列行

  9. 9

    根据列删除重复的行,同时保持下一列的最大值

  10. 10

    同时删除两列中的重复行

  11. 11

    从文件中删除顺序不同的重复行

  12. 12

    删除行以保持连续的重复值-Pandas

  13. 13

    如何在使用R保持原始行顺序的同时按行提取唯一记录和重复记录?

  14. 14

    如何在保持行顺序的同时从Pandas DataFrame采样

  15. 15

    从数据框中删除行,并保持行编号顺序

  16. 16

    从数据框中删除行,并保持行编号顺序

  17. 17

    如何在Numpy中重复行并保持顺序?

  18. 18

    在保持顺序的同时删除二维数组中的重复项

  19. 19

    R-在保持记录顺序的同时对列表进行重复数据删除

  20. 20

    如何在保持样式,单词顺序等的同时反转div中的行顺序

  21. 21

    sql:如何删除重复的行(内容相同,但是顺序不同)

  22. 22

    有条件地删除重复的行-啄顺序

  23. 23

    如何按排序顺序从表中删除后续重复行?

  24. 24

    合并列,同时保持行

  25. 25

    重复每个元素n次,同时保持原始顺序

  26. 26

    从DataGrid删除重复的行

  27. 27

    删除重复的数据行

  28. 28

    成对删除重复的行?

  29. 29

    SQL删除重复的行

热门标签

归档