首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在文件中搜索字符串并打印行shell脚本

如何在文件中搜索字符串并打印行shell脚本
EN

Stack Overflow用户
提问于 2018-04-28 19:54:29
回答 2查看 701关注 0票数 0

我有一个文件,里面有很多有索引的书。

我想用索引号搜索这些书。

文件格式有点像这样:

“美利坚合众国独立宣言”, 1 托马斯·杰斐逊“ .. “爱丽丝的奇遇”,刘易斯·卡罗尔著 11

代码语言:javascript
运行
复制
#!/bin/bash
echo "Enter the content your are searching for:"  
read content
echo -e "\nResult Shwoing For: $content\n"
grep $content GUTINDEX.ALL

如果用户搜索1.这段代码是打印1,11每一行中有一个。我只想打印包含1:

“美利坚合众国独立宣言,1

EN

回答 2

Stack Overflow用户

发布于 2018-04-28 20:27:00

简单地使用-w标志,在grep --help上阅读更多信息

代码语言:javascript
运行
复制
grep -w ${line_number} ${file_name}

对于grep -w 1 books

美利坚合众国独立宣言1 鲍勃的第一部“仙境”,刘易斯·卡罗尔11著

它可能会捕获包含数字的图书名,因此最好使用regex [${digit}]$ (例如,[1]$ )来匹配行尾的索引。

代码语言:javascript
运行
复制
grep -w [${line_number}]$ ${file_name}

对于grep -w 1$ books

“美利坚合众国独立宣言”1

票数 0
EN

Stack Overflow用户

发布于 2018-04-28 21:24:35

你需要使用regex。将grep改为egrep。

文件:

代码语言:javascript
运行
复制
1
11
111

如果只想搜索1,则可以使用

cat文件\ egrep "^1$“#它意味着开始和结束都是1‘

那你就需要加长纸条。例如,file.txt

代码语言:javascript
运行
复制
abc,1
abd,111
abf,11111
代码语言:javascript
运行
复制
cat file.txt | while read line ; do
 res=$(echo ${line} | awk -v FS=',' '{print $2}' | grep "^1$")
 if [ $? -eq 0 ]; then
  echo $line
 fi
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50080515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档