Skip to content

Instantly share code, notes, and snippets.

@ANAT01
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ANAT01/3f23fc6e1963dccb5e94 to your computer and use it in GitHub Desktop.
Save ANAT01/3f23fc6e1963dccb5e94 to your computer and use it in GitHub Desktop.
Простой способ отделения XML от всякого хлама
#!/bin/bash
#IFS=$'\n'
INPUTDIR=./unsorted/
MYCOUNTER=0
MYMAXCOUNT=$(find "$INPUTDIR" -type f -iname "*.xml" | wc -l);
CURRENTDATE=$(date +"%Y%m%d-%H%M");
if [ ! -d 'xml' ]; then
mkdir xml;
fi
if [ ! -d 'backup' ]; then
mkdir backup;
fi
#UPPER CASE to lower case
find "$INPUTDIR" -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
for i in $(find "$INPUTDIR" -type f -iname "*.xml"); do
OLDPATH="$i";
echo $i;
# Отображает анализируемый файл
MYCOUNTER=$(($MYCOUNTER+1))
echo "[ $MYCOUNTER из $MYMAXCOUNT ] $OLDPATH"
if xmllint --noout --nowarning $OLDPATH; then
NEWNAME=`md5sum $OLDPATH | awk '{print $1}'`;
mv -fv "$OLDPATH" xml/$NEWNAME.xml;
if [ -f "$OLDPATH.sig" ]; then
mv -fv "$OLDPATH.sig" xml/$NEWNAME.xml.sig;
fi
else
#mv -iv "$OLDPATH" notxml/$(basename $i);
echo "$OLDPATH not XML-file";
fi
done
ls -1 ./xml > backup/$CURRENTDATE.log
tar -czf backup/$CURRENTDATE.tar.gz xml/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment