我有一个文件,里面有很多有索引的书。
我想用索引号搜索这些书。
文件格式有点像这样:
“美利坚合众国独立宣言”, 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
发布于 2018-04-28 20:27:00
简单地使用-w
标志,在grep --help
上阅读更多信息
grep -w ${line_number} ${file_name}
对于grep -w 1 books
美利坚合众国独立宣言1 鲍勃的第一部“仙境”,刘易斯·卡罗尔11著
它可能会捕获包含数字的图书名,因此最好使用regex [${digit}]$
(例如,[1]$
)来匹配行尾的索引。
grep -w [${line_number}]$ ${file_name}
对于grep -w 1$ books
“美利坚合众国独立宣言”1
发布于 2018-04-28 21:24:35
你需要使用regex。将grep改为egrep。
文件:
1
11
111
如果只想搜索1,则可以使用
cat文件\ 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
https://stackoverflow.com/questions/50080515
复制相似问题