列出具有最小顺序的文件

发布于 2024-11-07 20:54:13 字数 334 浏览 0 评论 0原文

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

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

有人可以帮助我吗?

I have some files in a directory as below (not necessarily sorted):

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

10, 20 and 30 are the sequence numbers of A,B,C,D,E respectively.

I want to select only those files with minimum sequence of all A,B,C,D,E
the output should be :

A_10
B_10
C_10
D_20
E_10

could anybody help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

很快妥协 2024-11-14 20:54:13
perl -le '
  print join $/, 
    grep !$_{( split "_" )[0]}++, 
      sort glob "*_*"
  '

或:

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

或:

printf '%s\n' *_* | sort -t_ -uk1,1
perl -le '
  print join $/, 
    grep !$_{( split "_" )[0]}++, 
      sort glob "*_*"
  '

or:

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

or:

printf '%s\n' *_* | sort -t_ -uk1,1
波浪屿的海角声 2024-11-14 20:54:13

在bash中:

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

In bash:

for x in A B C D E; do
    ls -1 ${x}_* | sort | head -n1
done
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文