用相同模式查找特定行

用相同模式查找特定行

我目前正在编写一个 bash 脚本来 grep 出某些行,如粗体所示。但是当我执行 grep 'number' 时,所有不相关的行也会出现。

有没有办法只 grep 粗体行?
或者grep不是要使用的命令?

呼叫号码 = SEQUENCE
typeOfNumber = 国家
编号计划 = isdn电话
号码PresentationStatus = 允许
数字 = '12345678'
调用号 = SEQUENCE
typeOfNumber = 国家
数字 = '897654321'
addressNumber = SEQUENCE
typeOfNumber = 国家
号码 = '897654321'
联系号码 = SEQUENCE
typeofNumber = 'national'
数字 = '8888888'
anotherNumber = SEQUENCE
typeOfNumber = 国际
编号计划 = isdnTelephony
号码 = '$$$$$$$$'

答案1

您可以将 grep 与 Regex 表达式一起使用,具体取决于您想要获得的复杂程度以及您的精确匹配要求。最后一行有点复杂,它在某种程度上取决于要求是什么。适用于此特定数据集的一种相当简单的方法是

 cat del.me | grep -E "callingNumber|contactedNumber|number = '[0-9]{6}|calledNumber = " | uniq

这将提取与 callingNumber、number 和 calledNumber 匹配的所有内容(因为区分大小写)。对于“number”,它匹配以单引号开头且后跟至少 6 个数字的任何内容 - 从而过滤掉最后一个字符串。

结果:

callingNumber = SEQUENCE
number = '12345678'
calledNumber = SEQUENCE
number = '897654321'
contactedNumber = SEQUENCE
number = '8888888'

相关内容