Skip to main content

docx-shell-parse

Extract text from DOCX files using shell commands when python-docx is unavailable

Quellinformationen

Repository
HKUDS/OpenSpace
Letzte Quellaktivität
17. Juli 2026 um 03:43
Erkannte Sprache von SKILL.md
Englisch
Sterne
7.753
Forks
925

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
docx-shell-parse
description
Extract text from DOCX files using shell commands when python-docx is unavailable
# DOCX Shell Parsing Workaround When you need to read content from Microsoft Word (.docx) files but python-docx or similar libraries are unavailable, use this shell-based approach to extract text reliably. ## When to Use - Python environment lacks `python-docx` or similar libraries - You need quick text extraction without installing dependencies - Working in constrained environments (containers, minimal images, etc.) ## Core Technique DOCX files are ZIP archives containing XML files. Extract and parse the main document XML: ```bash unzip -p filename.docx word/document.xml | sed -e 's/<[^>]*>//g' ``` ## Step-by-Step Instructions ### 1. Verify the DOCX file exists ```bash ls -la document.docx ``` ### 2. Extract raw XML content Use `unzip -p` to pipe the document.xml content directly to stdout: ```bash unzip -p document.docx word/document.xml ``` ### 3. Strip XML tags from content Pipe through `sed` to remove all XML tags: ```bash unzip -p document.docx word/document.xml | sed -e 's/<[^>]*>//g' ``` ### 4. Clean up whitespace (optional) For cleaner output, remove excessive whitespace and newlines: ```bash unzip -p document.docx word/document.xml | \ sed -e 's/<[^>]*>//g' | \ sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | \ sed -e '/^$/d' ``` ### 5. Save extracted text to file ```bash unzip -p document.docx word/document.xml | \ sed -e 's/<[^>]*>//g' > output.txt ``` ## Complete Shell Function Add this reusable function to your scripts: ```bash parse_docx() { local file="$1" if [ ! -f "$file" ]; then echo "Error: File not found: $file" >&2 return 1 fi unzip -p "$file" word/document.xml 2>/dev/null | \ sed -e 's/<[^>]*>//g' | \ sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' | \ sed -e '/^$/d' } # Usage: parse_docx document.docx ``` ## Limitations - Does not preserve formatting, images, or tables structure - May include some residual XML entity references - Works best for simple text extraction needs - DOCX must be a valid Office Open XML format ## Verification Confirm extraction worked by checking output: ```bash parse_docx document.docx | head -20 ``` ## Alternative: Extract to Temporary Directory For more complex parsing needs: ```bash tmpdir=$(mktemp -d) unzip document.docx -d "$tmpdir" cat "$tmpdir/word/document.xml" | sed -e 's/<[^>]*>//g' rm -rf "$tmpdir" ```
Auf GitHub ansehen