Suponiendo que esté en una máquina * nix de algún tipo, puede hacerlo directamente desde su favorito. Aquí hay una demostración rápida:
# Primero, prepararé un directorio lleno de archivos PDF
$ ls -c | cabeza
9781849698665-ELEARNING_WITH_CAMTASIA_STUDIO.pdf
9781849699594-PYSIDE_GUI_APPLICATION_DEVELOPMENT.pdf
9781849695046-OPENGL_DEVELOPMENT_COOKBOOK.pdf
9781849695107-PENETRATION_TESTING_WITH_THE_BASH_SHELL.pdf
9781849698009-GLSL_ESSENTIALS.pdf
9781849689748-ASPNET_WEB_API_BUILD_RESTFUL_WEB_APPLICATIONS_AN.pdf
9781849692014-UNITY_ANDROID_GAME_DEVELOPMENT_BY_EXAMPLE_BEGINN.pdf
9781849692502-THE_GAME_JAM_SURVIVAL_GUIDE.pdf
9781849694148-FL_STUDIO_COOKBOOK.pdf
9781849682602-ORACLE_DATABASE_11GR2_PERFORMANCE_TUNING_COOKBOO.pdf
# Ahora generaré un CSV cuyos campos están en el orden “tamaño, md5sum, nombre”
$ para i en * .pdf; hacer
echo $ (stat -c% s “$ i”), $ (md5sum “$ i”) | sed ‘s / /, /’
hecho> t.csv
# Esto es lo que parece…
$ head t.csv
12786622, b23a66a33fc56b84b48d079ff37d8656,9781782161523-PYTHON_GEOSPATIAL_DEVELOPMENT_SECOND_EDITION.pdf
14806092, d13de9f328f5b65a786071951be93449,9781782162223-MASTERING_METASPLOIT.pdf
2539977, a3eb55e2180333e6828250e3286893fd, 9781782163022-RASPBERRY_PI_MEDIA_CENTER.pdf
9510422,0edaecfa5fc7723e2ae45bf1944bc200,9781782163589-LEARNING_METASPLOIT_EXPLOITATION_AND_DEVELOPMENT.pdf
8029087,28c3f8206760975439e69a706dd4015d, 9781782164005-MASTERING_EXT_JS.pdf
1409576,1c96bd1a9a02bb513cd227851e51298b, 9781782164104-PERSISTENCE_IN_PHP_WITH_DOCTRINE_ORM.pdf
12399879,31d8369c508672393a97bcd974f7d55f, 9781782164425-STORM_REALTIME_PROCESSING_COOKBOOK.pdf
1222305,7a33b4629179bf9dd7f2f14856bb1d1c, 9781782165606-CLOJURE_HIGH_PERFORMANCE_PROGRAMMING.pdf
3450322, f76352ff78e3c08204983cd7d1bbbb06,9781782166924-GETTING_STARTED_WITH_LLVM_CORE_LIBRARIES.pdf
2378651,476c30eca4dbdea766ed1dc59e12e702,9781782166962-GETTING_STARTED_WITH_HTML5_WEBSOCKET_PROGRAMMING.pdf
- Tengo dos archivos PST grandes. ¿Puedo fusionar los dos archivos bajo un PST?
- ¿Qué es un convertidor de PDF a XML fácil de usar?
- ¿Existen métodos para la conversión de OST a PST?
- Mi empleador presentó GC para mí en EB3, ¿cuál es la mejor manera de convertir a EB1 o EB2?
- ¿Exportar a M2TS produce una mejor calidad en comparación con MP4?
# Ahora cambiaré el nombre de los archivos a sus hash md5
$ while IFS =, lee _ MD FN; hacer
mv “$ FN” “$ MD”
hecho <t.csv
$ ls -c | cabeza
918b6f5850c94c455e99c65f61573a0c
a2ebed8d315b9cf34373aff2c6c0fb99
5e5a6a4cd755537e241ce64563a79b34
a2d8a18772d6e0a934f485ad2dc79687
afefe472a937dbd20d951a172e5464b8
47d036314f7c9eb7c2769b1cbd376fe5
778bc695faedd4fea8bd0e11ab5f4ed9
810e2818409051c334fb2da1e1c3499c
7f0b8a2dcd5e1b181e71331bf2d4ae99
94f347c82e07c25332fe5a226dea6995
Como estoy usando bash como mi shell, configuro la variable IFS
en el delimitador de campo en mi CSV ( ,
) para decirle al comando incorporado de read
que:
- dividir cada línea usando ese delimitador, y
- asigne los tres “componentes” a las variables
_
,MD
yFN
respectivamente
Convertirlo de nuevo es simplemente una cuestión de revertir los argumentos a mv
:
$ while IFS =, lee _ MD FN; hacer
mv -v “$ MD” “$ FN”
hecho <t.csv
$ ls -c | cabeza
9781849698009-GLSL_ESSENTIALS.pdf
9781849698665-ELEARNING_WITH_CAMTASIA_STUDIO.pdf
9781849699594-PYSIDE_GUI_APPLICATION_DEVELOPMENT.pdf
9781849694148-FL_STUDIO_COOKBOOK.pdf
9781849695046-OPENGL_DEVELOPMENT_COOKBOOK.pdf
9781849695107-PENETRATION_TESTING_WITH_THE_BASH_SHELL.pdf
9781849689649-INSTANT_QLIKVIEW_11_APPLICATION_DEVELOPMENT.pdf
9781849689748-ASPNET_WEB_API_BUILD_RESTFUL_WEB_APPLICATIONS_AN.pdf
9781849692014-UNITY_ANDROID_GAME_DEVELOPMENT_BY_EXAMPLE_BEGINN.pdf
9781849692502-THE_GAME_JAM_SURVIVAL_GUIDE.pdf