【问题标题】:list the files with minimum sequence列出具有最小序列的文件
【发布时间】:2011-08-27 01:01:37
【问题描述】:

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

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

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

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

A_10
B_10
C_10
D_20
E_10

有人可以帮帮我吗?

【问题讨论】:

  • 分别是一对一的关系,所以不可能10,20,30分别是A,B,C,D,E的序号...

标签: perl bash unix sed awk


【解决方案1】:
perl -le '
  print join $/, 
    grep !$_{( split "_" )[0]}++, 
      sort glob "*_*"
  '

或:

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

或:

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

【讨论】:

    【解决方案2】:

    在 bash 中:

    for x in A B C D E; do
        ls -1 ${x}_* | sort | head -n1
    done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 2016-02-01
      • 2019-04-08
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 2023-03-04
      相关资源
      最近更新 更多