我有一个文件(模式文件),我想通过 提供给 grep -f
,并且我想在另一个文件(搜索文件)中查找匹配项,其中字符串以给定模式开头。例如:
模式文件
1234
qwerty
chicken
搜索文件
12345
543212345
qwerty
1fwf32sgww
chicken fingers
鉴于上述文件,grep 应返回以下行
12345
qwerty
chicken fingers
我该怎么做?
我有一个文件(模式文件),我想通过 提供给 grep -f
,并且我想在另一个文件(搜索文件)中查找匹配项,其中字符串以给定模式开头。例如:
模式文件
1234
qwerty
chicken
搜索文件
12345
543212345
qwerty
1fwf32sgww
chicken fingers
鉴于上述文件,grep 应返回以下行
12345
qwerty
chicken fingers
我该怎么做?
您可以
^
在所有行前面加上PATERN_FILE
要传递到的grep -f
:或者
sed 's/^/^/' PATTERN_FILE
代替paste
.现在,如果中的行
PATTERN_FILE
是固定字符串而不是基本正则表达式,那么您还需要转义所有正则表达式运算符:执行此操作的一个选项是首先修改模式文件,使用如下所示的命令将字符添加
^
到每行的开头。这将指示 grep 通过正则表达式仅匹配行的开头。然而,这会修改模式文件,我更喜欢一个不会改变原始列表的解决方案