我在目录中有一些文件如下(不一定排序):
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
和30
分别是A,B,C,D,E
的序列号。
我想只选择所有A,B,C,D,E
序列最小的文件
输出应该是:
A_10
B_10
C_10
D_20
E_10
任何人都可以帮助我吗?
答案 0 :(得分:4)
在bash中:
for x in A B C D E; do
ls -1 ${x}_* | sort | head -n1
done
答案 1 :(得分:4)
perl -le '
print join $/,
grep !$_{( split "_" )[0]}++,
sort glob "*_*"
'
或:
printf '%s\n' *_* | sort | awk -F_ '!_[$1]++'
或:
printf '%s\n' *_* | sort -t_ -uk1,1