我想使用grep在一个文件中搜索多个东西。我试图将两行grep合并在一起,这是不成功的。要搜索多个字符串,我将执行以下操作:
grep 'a\|b\|c' file要搜索包含选项卡的字符串,我将使用以下内容:
grep -P '1\ta' file但是,要搜索多个字符串,所有这些字符串都包含将这两个选项卡组合在一起的选项卡,这是行不通的:
grep -P '1\ta\|2\tb\|3\tc' file有办法这样做吗?
发布于 2016-03-15 23:43:39
grep中的扩展regexp模式也应该工作:
grep -E '1\ta\|2\tb\|3\tc' file发布于 2016-03-16 00:07:09
就我个人而言,我会使用awk,因为它能够很好地理解扩展正则表达式语法和转义序列(如\t ):
awk '/1\ta|2\tb|3\tc/' file在本例中,使用专用于bash ($'')或grep (-P)的特性似乎有些过分。
以下是您可能会考虑的另一种选择:
grep -Ff patterns file其中patterns是包含您试图匹配的固定字符串的文件,例如:
1   a
2   b(文件中有一个文字制表符)。-F开关与固定字符串匹配。
https://stackoverflow.com/questions/36024196
复制相似问题