2016-07-19 5 views
2

У меня есть файлы с версией, то есть 2 цифры суффиксы для каждого файланайти последние версии файлов в каждом каталоге

например: dphy/05E2.01, dphy/05E2.00 ФАПЧ/05E2.43, ФАПЧ /05E2.42 ...

Я пишу скрипт для обработки этих файлов. Может в состоянии перечислить только версионируются файлы ниже команды

find /path/ -type f -name '*.[0-9][0-9]' 

Но я заинтересован только в последних версиях файлов из каждого каталога т.е.

dphy/05E2.01 ФАПЧ/05E2.43

Итак, как перечислить только последние версии?

+0

Я рекомендую написать сценарий bash, который может выполнять некоторую арифметику. – theblindprophet

ответ

2
find /path/ -type f -name '*.[0-9][0-9]' | 
awk -F '.' '{k=$0; sub(/\.[^.]+$/, "", k)} $NF>=max[k]{max[k]=$NF} 
     END{for (i in max) print i FS max[i]}' 

/path/pll/05E2.43 
/path/dphy/05E2.01 
+0

@Bhargav Это получилось? – anubhava

+0

Это список последних версий файлов, но файл с не-версиями также существует вместе с файлами версий 'dphy/6P, dphy/05E2.01', поэтому' find' также перечисляет их также –

+1

Он работает, но отображается, если существует только одна версия ' hdmidprx/05E2.', также, пожалуйста, объясните заявление 'awk' –