加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 16:17:17 所属栏目:安全 来源:网络整理
导读:我有一个Python中的实用程序脚本: #!/usr/bin/env pythonimport sysunique_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)# optio
我有一个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的节点递增,并且如果该节点的内容不是(!)先前设置的,则打印该行。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读