perl - 列出最小顺序的文件

标签 perl bash unix sed awk

我在如下目录中有一些文件(不一定排序):

A_10
A_20
A_30
B_10
B_30
C_10
C_20
D_20
D_30
E_10
E_20
E_30

102030A,B,C,D,E的序号分别。

我只想选择所有 A,B,C,D,E 中最小序列的文件 输出应该是:

A_10
B_10
C_10
D_20
E_10

谁能帮帮我?

最佳答案

perl -le '
  print join $/, 
    grep !$_{( split "_" )[0]}++, 
      sort glob "*_*"
  '

或:

printf '%s\n' *_* | sort | awk -F_ '!_[$1]++'

或:

printf '%s\n' *_* | sort -t_ -uk1,1

关于perl - 列出最小顺序的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027939/

相关文章:

perl - 在perl中根据行号修剪行

perl - 如何让 Perl 将整数存储为数字而不是字符串?

linux - bash 文本文件转置,添加新列并再次制作一个大的两列

linux - 为什么在 vim 中使用 Esc?

bash - 收到错误 EOF : Command no found when using ssh

perl - 使用 Plack 和 Middlewares 时将默认 perl 的 IO 切换为 utf-8 是否正确?

linux - 如何使程序在 SHELL 中的任何地方都可执行

bash - 删除大型单词列表中重复项的最快方法?

bash - 是否有很好的在线免费(最好是 PDF)bash 教程?

Linux 加载和执行 unix 脚本文件时出现错误