grepとcutを同時に使う方法は?

grepとcutを同時に使う方法は?

私が果物データベースを作成しているとしましょう。この形式を含むテキストファイルを使用してください。

(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

grepcount=20cost=2

$ grep ":$count:$cost$" FruitDB.txt
Orange:20:2

関連情報