У меня есть скрипт для удаления файлов с более низкой версией в каталоге.Удалить дубликаты jars в каталоге
#!/bin/bash
#Script to remove lower version jar files.
for PREFIX in `ls *.jar|sed 's/-[0-9\.\0-9\.a-zA-Z]*\.jar//g'|uniq -d`; do
for FILE in `ls -r ${PREFIX}*|sed '1d'`; do
echo " $FILE"
rm $FILE
done
done
У этого есть ошибка.
У меня есть список дубликатов файлов jar в каталоге.
хуг-1.1.jar хуг-1.1.1.jar аЬс-1.6.jar аЬс-1.3.jar ABC-XYZ-PQR-1.9.6.jar ABC-XYZ-PQR-1.9. 2.jar хуг-tom.jar хуг-том-20120423.jar хуг-том-20120410.jar ABC-инструментарий-1,6-среда-5.2.0.jar ABC-инструментарий-1,6-среда-5.0. 0.jar
Ошибка связана с файлами jar файла xyz. BUG: 1) Сценарий удаляет файл xyz-1.1.1.jar вместо xyz-1.1.jar 2) Сценарий удаляет файлы xyz-tom-20120423.jar и xyz-tom-20120410.jar.
Это своего рода сложная задача для выполнения в сценарии оболочки. Могу ли я предложить переписать на более функциональном языке, чтобы облегчить понимание того, как это происходит? На самом деле, я не вижу причины, поскольку вы, похоже, работаете над проектом Java, а не на Java. – Jules