список файлов с минимальной последовательностью - PullRequest
2 голосов
/ 17 мая 2011

У меня есть несколько файлов в каталоге, как показано ниже (не обязательно отсортировано):

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

Кто-нибудь может мне помочь?

Ответы [ 2 ]

4 голосов
/ 17 мая 2011
perl -le '
  print join $/, 
    grep !$_{( split "_" )[0]}++, 
      sort glob "*_*"
  '

или:

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

или:

printf '%s\n' *_* | sort -t_ -uk1,1
4 голосов
/ 17 мая 2011

В Баш:

for x in A B C D E; do
    ls -1 ${x}_* | sort | head -n1
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...