#!/bin/bash # PDF索引脚本 - 将核心技术PDF转文本并建立可搜索索引 INDEX_DIR="/root/personal/learn/pdf_index" PDF_LISTS=( "/root/personal/learn/lectures/BLDC_FOC" "/root/personal/learn/bldc_motor_control/pdfs/app_notes" "/root/personal/learn/humanoid_robot" "/root/personal/learn/oopc" ) mkdir -p "$INDEX_DIR/txt" INDEX_FILE="$INDEX_DIR/search_index.txt" echo "# PDF Search Index - $(date)" > "$INDEX_FILE" echo "# Format: filename ||| first_line ||| filepath" >> "$INDEX_FILE" echo "" >> "$INDEX_FILE" COUNT=0 for base in "${PDF_LISTS[@]}"; do find "$base" -name "*.pdf" -type f 2>/dev/null | while read pdf; do fname=$(basename "$pdf" .pdf) txtpath="$INDEX_DIR/txt/${fname}.txt" # Convert to text if not already done if [ ! -f "$txtpath" ]; then pdftotext -layout "$pdf" "$txtpath" 2>/dev/null fi # Get first non-empty line for indexing first_line=$(head -5 "$txtpath" 2>/dev/null | tr -d '\000' | sed '/^$/d' | head -1 | tr -d '\n' | cut -c1-80) echo "${fname} ||| ${first_line} ||| ${pdf}" >> "$INDEX_FILE" COUNT=$((COUNT + 1)) done done echo "Indexed $COUNT PDFs" echo "Done: $INDEX_FILE"