Titlepdf. Bash script .⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
| Español | English |
Es normal encontrarse con archivos pdf con nombres de archivo tan descriptivos como 1606152010.pdf ...
Si el autor asignó un título más apropiado en el campo Title de los metadatos del documento pdf , es posible renombrar éste de forma automática, vamos a ver cómo.
En Debian puedes encontrar diversas herramientas | |
|---|---|
|
Un título | ||
|---|---|---|
|
Saneando Es necesario asegurarse de que el nombre de archivo es seguro, | |
|---|---|
|
ya terminamos... | ||
|---|---|---|
# Rename |
📜
titlepdf.sh
Juntando todas las piezas,
#!/bin/bash
###
# titlepdf
#
# Rename pdf file as the title metadata.
# Makes or not the renaming without error code.
#
# Dependencies,
# file
# pdfinfo
#
# (c) 2016, xae.
#
# 20160221
###
declare -r SCRIPT=${0##*/}
# depends
# Verify if a dependencie is satisfied,
# if not returns 0.
function depends {
[ -e $1 ] ||
{
printf "%s\n" "$SCRIPT:$LINENO: $1. Not avalaible." >&2 ;
return 0;
}
return 1
}
# Usage
# Exits from script with error code 1
function usage {
printf "$1\nUsage:\n\ttitlepdf pdf_file\n\n" >&2
exit 1
}
# Dependencies
depends "/usr/bin/file" ||
depends "/usr/bin/pdfinfo" &&
exit 1
[ $# -eq 0 ] && usage
shopt -s extglob
for FILE in "$@";
do
# Test if input is valid
[[ "$(file -b "$FILE")" =~ 'PDF' ]] ||
continue
# Extract metadata
METADATA=$(pdfinfo "$FILE" 2> /dev/null) ||
continue
# Title
# No title tag
[ -z "${METADATA##*Title:*}" ] ||
continue
# Extract
TITLE="${METADATA#Title:*}"
TITLE="${TITLE%%[[.newline.]]*}"
# Trim
TITLE="${TITLE#${TITLE%%[![.space.]]*}}"
# No title
[ -z "${TITLE}" ] &&
continue
# Make path safe
REPLACE_CHAR=_
TITLE="${TITLE//[![:alnum:]]/"$REPLACE_CHAR"}"
# Remove replace char runs
TITLE="${TITLE//+("$REPLACE_CHAR")/"$REPLACE_CHAR"}"
# Rename
mv -i -- "$FILE" "$TITLE".pdf
done
exit 0
∎
| English | Español |
Often you get pdf files named like 1606152010.pdf ,
a very illustrative title ...
If the author gave a better name in the Title metadata field of the pdf document, renaming the file would be possible , let's do it...
Debian provides several tools to manage | |
|---|---|
|
A title | ||
|---|---|---|
|
Sanity check It is a must to test that filenames are secure, | |
|---|---|
|
finishing up... | ||
|---|---|---|
# Rename |
📜
titlepdf.sh
All pieces together,
#!/bin/bash
###
# titlepdf
#
# Rename pdf file as the title metadata.
# Makes or not the renaming without error code.
#
# Dependencies,
# file
# pdfinfo
#
# (c) 2016, xae.
#
# 20160221
###
declare -r SCRIPT=${0##*/}
# depends
# Verify if a dependencie is satisfied,
# if not returns 0.
function depends {
[ -e $1 ] ||
{
printf "%s\n" "$SCRIPT:$LINENO: $1. Not avalaible." >&2 ;
return 0;
}
return 1
}
# Usage
# Exits from script with error code 1
function usage {
printf "$1\nUsage:\n\ttitlepdf pdf_file\n\n" >&2
exit 1
}
# Dependencies
depends "/usr/bin/file" ||
depends "/usr/bin/pdfinfo" &&
exit 1
[ $# -eq 0 ] && usage
shopt -s extglob
for FILE in "$@";
do
# Test if input is valid
[[ "$(file -b "$FILE")" =~ 'PDF' ]] ||
continue
# Extract metadata
METADATA=$(pdfinfo "$FILE" 2> /dev/null) ||
continue
# Title
# No title tag
[ -z "${METADATA##*Title:*}" ] ||
continue
# Extract
TITLE="${METADATA#Title:*}"
TITLE="${TITLE%%[[.newline.]]*}"
# Trim
TITLE="${TITLE#${TITLE%%[![.space.]]*}}"
# No title
[ -z "${TITLE}" ] &&
continue
# Make path safe
REPLACE_CHAR=_
TITLE="${TITLE//[![:alnum:]]/"$REPLACE_CHAR"}"
# Remove replace char runs
TITLE="${TITLE//+("$REPLACE_CHAR")/"$REPLACE_CHAR"}"
# Rename
mv -i -- "$FILE" "$TITLE".pdf
done
exit 0
∎
Media
|
|
|
|---|
Leave Titlepdf. Bash script .⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ to:
Read more #bash posts
Best Posts From j2e2xae
We have not curated any of j2e2xae's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From j2e2xae
- Infinitamente nada
- Ser tonto
- Segunda convocatoria de La Forja Fractal Oráculo⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
- Tiempo y lugar
- Niña caprichosa
- Zona de fumadores
- Conjugar en tiempo presente
- Algo más
- Hispaliterario 44 / Sangre azul
- Aquel amor primero
- Niña mala
- Entrada al Concurso de Literatos | Fantasma de un violín
- Entrada de presentación Introductory post⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
- Gallina vieja
- Eros y Psique
- MI ENTRADA A LA 9NA CONVOCATORIA / Tríptico de Haikus
- Ni debajo del agua
- Revancha
- Abraxa
- Alimento