Obtener el texto de ficheros docx y xlsx (MS Office) desde terminal
Los documentos Office docx xlsx deben ser transformados para poder obtener su contenido como texto claro. Para buscar qué ficheros contienen X cadenas, por ejemplo con grep, posiblemente nos valdría con descomprimir (unzip) los documentos y sobre los mismos usar grep.
unzip fichero.docx unzip fichero.xlsx
Si se quiere obtener los textos de una manera menos engorrosa y más clara, se puede hacer uso de estas dos aplicaciones para pasar los archivos .docx a texto claro y los ficheros Excel .xlsx al formato csv.
# xlsx2csv (pip install xlsx2csv). xlsx2csv file.xlsx # docx2txt (Suele encontrarse en los repositorios). docx2txt < infile.docx docx2txt < infile.docx > outfile.txt
Comandos para obtener en formato texto (Word) / csv (Excel) el contenido de ficheros docx y xlsx de todo un directorio /home/marta.
# Word. find /home/marta/ -name "*.xlsx" -exec echo -e '\n'############ {} \; -exec xlsx2csv {} \; # Excel. find /home/marta/ -name "*.docx" -exec echo -e '\n'############ {} \; -exec sh -c 'docx2txt < "{}"' \;
Ahora es simple filtrar la salida con grep o redirigirla a un fichero cualquiera. El uso del comando “echo” del ejemplo facilita identificar el fichero al que pertenece la salida.