shell – Unix:删除重复行而不进行排序

前端之家收集整理的这篇文章主要介绍了shell – Unix:删除重复行而不进行排序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Python中的实用程序脚本:
#!/usr/bin/env python
import sys
unique_lines = []
duplicate_lines = []
for line in sys.stdin:
  if line in unique_lines:
    duplicate_lines.append(line)
  else:
    unique_lines.append(line)
    sys.stdout.write(line)
# optionally do something with duplicate_lines

这个简单的功能(uniq不需要排序,稳定排序)必须作为一个简单的UNIX实用程序可用,不可以吗?也许在管道中的过滤器的组合?

请求原因:在一个系统上需要这个功能,我不能在任何地方执行python

UNIX Bash脚本博客 suggests
awk '!x[$0]++'

这个命令只是告诉awk打印哪些行。变量$ 0保存一行的全部内容,方括号是数组访问。因此,对于文件的每一行,数组x的节点递增,并且如果该节点的内容不是(!)先前设置的,则打印该行。

原文链接:https://www.f2er.com/bash/390502.html

猜你在找的Bash相关文章