如何搜索关键字,然后列出有关此关键字的所有行?

时间:2019-11-05 20:13:56

标签: shell

我使用标准外壳编写电话簿程序,该程序可以添加,删除和搜索您要查找的联系人。 我使用4个变量(姓名,地址,城市和电话号码)存储一位联系人的信息。我将它们逐行放入txt文件中。当我进行搜索时,例如:

Bill
2 wood st.
city
123-4323

当我搜索Bill或wood或4323时,我需要打印所有这4行。 sed和awk不允许使用,怎么办?

我使用了只能输出一行的grep。

echo -e "\nEnter name to look up: \c"
read search
grep -i $search book

1 个答案:

答案 0 :(得分:0)

这是一个替换grep的awk程序:

#!/usr/bin/bash

read -rp 'Enter a search term: ' search

awk -v search="$search" '
  # read 4 lines as a "record"
  { record = $0; for (i=1; i<=3; i++) { getline; record = record RS $0 } }
  # do the case insensitive pattern match
  tolower(record) ~ tolower(search) { print record }
' book