在 deepin 系统中,搜索包含特定内容或关键字的 Word 文档是一项常见需求。以下是一个详细的步骤指南,帮助你在文件夹中高效地完成这项任务。
一、安装依赖工具
要搜索 Word 文档,首先需要安装一些必要的工具。这些工具包括 catdoc
、docx2txt
、iconv
和 grep
。它们分别用于处理不同格式的 Word 文档、字符编码转换和文本搜索。
在终端执行以下命令安装这些工具:
sudo apt install catdoc docx2txt libc-bin grep
如果系统中已安装这些工具,命令将提示无需重复安装。
二、编写搜索脚本
(一)只搜索 Word 文档(.doc/.docx)
以下是一个 Bash 脚本示例,用于搜索包含特定关键字的 Word 文档:
#!/bin/bash
# 安装依赖
hash catdoc docx2txt iconv grep || {echo "缺少依赖命令,正在尝试自动安装"sudo apt install catdoc docx2txt libc-bin grephash catdoc docx2txt iconv grep && {echoecho "依赖安装成功"echo} || {echoecho "依赖安装失败,脚本无法运行"echo "请点击终端上的[X]关闭该窗口"word">while true; word">do read; word">doneexit}
}# 读取参数
word">while true; word">doecho -n "请输入搜索文件夹:"read dir# 去除开头的file://dir="${dir/#file:\/\//}"# 未输入文件夹,搜索当前文件夹word">if [ "$dir" = "" ]; word">thendir="$(realpath "$PWD")"word">fiword">if [ -e "$dir" ]; word">thenbreakword">elseecho "搜索文件夹不存在"word">fi
word">doneword">while true; word">doecho -n "请输入搜索关键字:"read keywordword">if [ "$keyword" = "" ]; word">thenecho "搜索关键词不能为空"word">elsebreakword">fi
word">doneecho
echo "在 \"$dir\" 中寻找包含 \"$keyword\" 的word文件"
echofind "$dir" -type f | word">while read f; word">docontent=`cat "$f" | docx2txt 2>/dev/null | grep -ai "$keyword"catdoc "$f" 2>/dev/null | grep -ai "$keyword"`word">if [ "$content" != "" ]; word">thenfound="true"echo -------------------------------------------------------------echo "$f"echoecho "$content" | headechoword">fi
word">doneecho
echo "搜索完毕"
echo "可点击终端上的[X]关闭该窗口"# 防止终端自动关闭,用户可点击[X]关闭终端
word">while true; word">do read; word">done
(二)同时搜索 Word 文档(.doc/.docx)和纯文本(.txt)
如果你还需要同时搜索纯文本文件,可以使用以下脚本:
#!/bin/bash
# 安装依赖
hash catdoc docx2txt iconv grep || {echo "缺少依赖命令,正在尝试自动安装"sudo apt install catdoc docx2txt libc-bin grephash catdoc docx2txt iconv grep && {echoecho "依赖安装成功"echo} || {echoecho "依赖安装失败,脚本无法运行"echo "请点击终端上的[X]关闭该窗口"word">while true; word">do read; word">doneexit}
}# 读取参数
word">while true; word">doecho -n "请输入搜索文件夹:"read dir# 去除开头的file://dir="${dir/#file:\/\//}"# 未输入文件夹,搜索当前文件夹word">if [ "$dir" = "" ]; word">thendir="$(realpath "$PWD")"word">fiword">if [ -e "$dir" ]; word">thenbreakword">elseecho "搜索文件夹不存在"word">fi
word">doneword">while true; word">doecho -n "请输入搜索关键字:"read keywordword">if [ "$keyword" = "" ]; word">thenecho "搜索关键词不能为空"word">elsebreakword">fi
word">doneecho
echo "在 \"$dir\" 中寻找包含 \"$keyword\" 的word文件"
echofind "$dir" -type f | word">while read f; word">docontent=`cat "$f" | docx2txt 2>/dev/null | grep -Ii "$keyword"catdoc "$f" 2>/dev/null | grep -Ii "$keyword"cat "$f" | grep -Ii "$keyword"cat "$f" | iconv -f gb18030 -t utf-8 2>/dev/null | grep -Ii "$keyword"cat "$f" | iconv -f big5 -t utf-8 2>/dev/null | grep -Ii "$keyword"`word">if [ "$content" != "" ]; word">thenfound="true"echo -------------------------------------------------------------echo "$f"echoecho "$content" | headechoword">fi
word">doneecho
echo "搜索完毕"
echo "可点击终端上的[X]关闭该窗口"# 防止终端自动关闭,用户可点击[X]关闭终端
word">while true; word">do read; word">done
三、运行脚本
- 将上述脚本保存为一个文件,例如
search_word.sh
。 - 右击脚本文件,选择“属性”,在“权限管理”中勾选“允许以程序执行”.
- 双击脚本文件,选择“在终端运行”,或者在终端直接输入
./search_word.sh
运行脚本. - 按照脚本提示输入搜索文件夹和关键字,脚本将自动搜索并显示包含关键字的 Word 文档及其部分内容.
四、注意事项
- 如果首次启动脚本时自动安装依赖失败,请手动使用
sudo apt install catdoc docx2txt
命令安装. - 脚本会显示搜索结果的文件路径和部分内容,方便你快速定位和查看.
- 你可以根据需要修改脚本中的搜索参数和处理逻辑,以适应不同的搜索需求.
希望本文章可以在 Linux 文件夹中高效地搜索包含特定内容或关键字的 Word 文档,提高工作效率和文件管理能力.
支持ing