我有一个文件,里面有很多带索引号的书。
我想用索引号搜索书籍。
文件格式如下:
"美利坚合众国独立宣言,
托马斯杰斐逊"
1......................
爱丽丝梦游仙境,刘易斯卡罗尔 11
#!/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
答案 0 :(得分:0)
简单使用-w
标记,请在grep --help
grep -w ${line_number} ${file_name}
代表grep -w 1 books
美利坚合众国独立宣言1
Bobs在仙境中的1,作者:Lewis Carroll 11
它可能会捕获包含数字的书名,
所以最好使用正则表达式[${digit}]$
,例如[1]$
进行匹配
行尾的索引。
grep -w [${line_number}]$ ${file_name}
代表grep -w 1$ books
美利坚合众国独立宣言,1
答案 1 :(得分:0)
你需要使用正则表达式。将grep改为egrep。
文件:
1
11
111
如果您只想搜索1,那么您可以使用
cat file | egrep“^ 1 $”#意味着以1.`
开始和结束然后你需要扩展脚本。例如 的 file.txt的强>
abc,1
abd,111
abf,11111
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