# HG changeset patch # User Tom Fredrik Blenning Klaussen # Date 1392748925 -3600 # Node ID bae09ef524cb8f0c6bd9c78d9c4331a6e83fe3a2 # Parent 6cf5eb5b0be17e0b8dc024c2db13e1d39e185e8c Fixes escaping problem in SQL. Introduces striping functionality for prefixes. diff -r 6cf5eb5b0be1 -r bae09ef524cb scripts/duplicates.sh --- a/scripts/duplicates.sh Tue Feb 18 19:41:23 2014 +0100 +++ b/scripts/duplicates.sh Tue Feb 18 19:42:05 2014 +0100 @@ -2,9 +2,18 @@ PREFIX=$1 +STRIP=true if [ -n "$PREFIX" ] then - PREFIX="WHERE path LIKE '${PREFIX}%'" + SEDPREFIX=$(echo $PREFIX | sed -e 's/\//\\\//g') + SQLPREFIX=$(echo $PREFIX | sed -e "s/'/''/g") + + PREFIX="WHERE path LIKE '${SQLPREFIX}%'" fi -sqlite3 ~/.DeDupe.sqlite "SELECT hex(checksum),size,path FROM (SELECT * FROM files WHERE checksum IN (SELECT checksum FROM (SELECT checksum, COUNT(*) as num FROM files ${PREFIX} GROUP BY checksum) WHERE num >= 2)) ${PREFIX} ORDER BY size;" +if ${STRIP} +then + sqlite3 ~/.DeDupe.sqlite "SELECT hex(checksum),size,path FROM (SELECT * FROM files WHERE checksum IN (SELECT checksum FROM (SELECT checksum, COUNT(*) as num FROM files ${PREFIX} GROUP BY checksum) WHERE num >= 2)) ${PREFIX} ORDER BY size;" | sed "s/|${SEDPREFIX}/|/" +else + sqlite3 ~/.DeDupe.sqlite "SELECT hex(checksum),size,path FROM (SELECT * FROM files WHERE checksum IN (SELECT checksum FROM (SELECT checksum, COUNT(*) as num FROM files ${PREFIX} GROUP BY checksum) WHERE num >= 2)) ${PREFIX} ORDER BY size;" +fi