Skip to content

Instantly share code, notes, and snippets.

@hinnerk
Created October 21, 2011 12:16
Show Gist options
  • Save hinnerk/1303674 to your computer and use it in GitHub Desktop.
Save hinnerk/1303674 to your computer and use it in GitHub Desktop.
Renames PDF files using the »InfoKey: Title« pdf attribute. Example: »817-1985.pdf« => »System Administration Guide Basic Administration (817-1985).pdf«
#!/bin/bash
# (BSD 3-Clause / "BSD New" / "BSD Simplified")
# Copyright (c) 2011, Hinnerk Haardt
# <haardt@information-control.de> All rights reserved.
#
# Redistribution and use in source and binary forms, with or
# without modification, are permitted provided that the following
# conditions are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
#
# * Neither the name of the <ORGANIZATION> nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
for x in *.pdf
mkdir renamed
do
OLDNAME=`echo $x | sed 's/\.pdf//'`
NAME=`pdftk $x dump_data output - | grep -A 1 "InfoKey: Title" | grep -v "InfoKey: Title" | sed 's/InfoValue\: //'`\ \($OLDNAME\).pdf
cp $x renamed/"$NAME"
echo "$x => $NAME"
done
echo "Erledigt."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment