Mercurial > dedupe
view scripts/duplicates.sh @ 110:bae09ef524cb
Fixes escaping problem in SQL.
Introduces striping functionality for prefixes.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Tue, 18 Feb 2014 19:42:05 +0100 |
| parents | 6b997f4f7e19 |
| children | 3951f6d27219 |
line wrap: on
line source
#!/bin/bash PREFIX=$1 STRIP=true if [ -n "$PREFIX" ] then SEDPREFIX=$(echo $PREFIX | sed -e 's/\//\\\//g') SQLPREFIX=$(echo $PREFIX | sed -e "s/'/''/g") PREFIX="WHERE path LIKE '${SQLPREFIX}%'" fi 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
