2

ディレクトリ内の下位バージョンの jar ファイルを削除するスクリプトがあります。

#!/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ファイルのリストを以下に示します。

xyz-1.1.jar
xyz-1.1.1.jar
abc-1.6.jar
abc-1.3.jar
abc-xyz-pqr-1.9.6.jar
abc-xyz-pqr-1.9.2.jar
xyz-tom.jar
xyz-tom-20120423.jar
xyz-tom-20120410.jar
abc-toolkit-1.6-runtime-5.2.0.jar
abc-toolkit-1.6-runtime-5.0.0.jar

バグは、xyz パターンの jar ファイルにあります。バグ:

  • スクリプトが xyz-1.1.jar ではなく xyz-1.1.1.jar ファイルを削除しています
  • スクリプトは xyz-tom-20120423.jar および xyz-tom-20120410.jar ファイルを削除しています。
4

1 に答える 1