我有一个文件(智能手机),其中包含不同的智能手机:
品牌:苹果 类型:iPhone 7 颜色:银色 年:2
品牌:苹果 类型:iPhone 7 颜色:金色 年:3
品牌:苹果 类型:iPhone 8 颜色:银色 年:1
品牌:苹果 类型:iPhone 7 颜色:银色 年:1
如果我想将grep与标志以及管道运算符结合使用,如何使用多个关键字搜索正在寻找的智能手机?
我正在寻找的结果应如下所示:
品牌:苹果 类型:iPhone 7 颜色:银色 年:1
我尝试了不同的方式,也使用了-e标志,但是我得到的是不同的行,所有结果都与关键字匹配,而不仅仅是一个与我的关键字匹配的智能手机。
答案 0 :(得分:0)
cat <your_file_name_here> | grep 'Brand: Apple' | grep 'Type: iPhone 7'
将获得所有Apple iPhone 7的
您可以添加| grep 'Color: Silver'
以获得所有Silver iPhone 7s。
请注意,这假设始终存在key: value
-如果可能存在不同数量的空格等,则您将需要做一些更聪明的事情。
答案 1 :(得分:0)
我找到了解决方案。我必须使用标志来显示关键字前后的行:
grep苹果myfile -A2 | grep iPhone -C1 | 1 -B2
A2停留在-向我展示关键字之后的第二行,C1停留在-向我展示关键字前面的行和之后的行,-B2停留在给我展示关键字前面的两行。