假设我正在做一个水果数据库。使用一个文本文件,里面包含这种格式的,
(Fruit:Quantity:Cost)
Apple:10:1
Orange:20:2
Pears:10:3
Banana:20:4
10 Apples at $1 each.
20 Oranges at $2 each.
10 Pears at $3 each.
20 Bananas at $4 each.
我的简单脚本是这样的:
echo "Enter fruit to find"
read fruit
echo "Enter quantity to find"
read count
echo "Enter cost to find"
read cost
grep $fruit FruitDB.txt
它将显示数据库中的水果。
但是我如何使用 grep 和 cut 一起来仅按数量或成本查找。在数量计数区域,假设我输入 20,它将显示橙子和香蕉。或者当我输入计数和成本时,它只会显示符合条件的那些。
答案1
cut
您根本不需要,只需采用grep
以下形式就足够了:
grep "^$fruit:$count:$cost$" FruitDB.txt
删除当时不想 grep 的任何变量(但保留分隔符:
、行首和行尾符号^
以及$
(对于边缘变量))。
例如,要 grep 那些count=20
:
$ grep ":$count:" FruitDB.txt
Orange:20:2
Banana:20:4
grep 带有count=20
和 的内容cost=2
:
$ grep ":$count:$cost$" FruitDB.txt
Orange:20:2