You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Shell脚本搜索文件中指定索引编号的书籍并打印对应行

解决带索引编号书籍文件的搜索需求(Shell脚本实现)

我帮你修正并优化了脚本,解决了原脚本里的拼写错误和潜在的匹配问题,确保能精准搜索到指定索引对应的书籍行:

#!/bin/bash
echo "Enter the content you are searching for:"
read -r content
echo -e "\nResult Showing For: $content\n"
# 使用正则表达式精准匹配独立的索引编号,避免匹配包含目标数字的其他编号
grep -E "(^|,| )$content(,| |$)" "GUTINDEX.ALL"

关键优化点说明:

  • 修正了拼写错误:把Shwoing改成了正确的Showing
  • 给read加上-r选项:防止用户输入的内容里的反斜杠被意外转义
  • 给$content和文件名加引号:避免当搜索内容包含空格或者文件名有特殊字符时出现错误
  • 使用grep -E结合正则表达式:确保匹配的是独立的索引编号,比如搜索1时不会误匹配到11、21这类包含1的编号。正则(^|,| )表示匹配行开头、逗号或空格,(,| |$)表示匹配逗号、空格或行结尾,这样就能把索引编号作为独立的单元匹配。

测试效果:

  • 当你输入1时,只会输出包含独立编号1的行:

    "The Declaration of Independence of the United States of America, 1 by Thomas Jefferson"

  • 当你输入11时,只会输出包含独立编号11的行:

    "Alice's Adventures in Wonderland, by Lewis Carroll 11"

内容的提问来源于stack exchange,提问作者Safin Mahmud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:23:44