如何从unix中包含两个已知字符串和未知字符串的文件中进行grep?

时间:2019-02-18 18:41:20

标签: bash grep

我正在尝试grep包含两个字符串的行。第一个字符串是“ ulist”,第二个字符串可以有任何前缀,但应以字符串“ path”结尾。只需要对包含这两个字符串的行进行grepping。

我尝试使用以下grep条件-

agrep -w "ulist;path" // AND between both patterns as both are required in order to grep a line

该命令几乎将我想要的所有内容都抓取了,但是却没有得到那些包含“ ulist”和“ sipath”的行(以字符串路径结尾但仍然没有被抓取)。我需要grep包含“ ulist”和“ * path”的所有行(path之前可以有任何内容)。但是,这两个都是必需的(这两个模式之间必须是AND)。

有人可以建议正确的正则表达式模式吗?

2 个答案:

答案 0 :(得分:1)

如果第一个应该在第二个之前

$ grep '\bulist\b.*path\b' file

用于指定单词的单词边界不显示为子字符串。

答案 1 :(得分:1)

grep -w ".*ulist.*path$" myfile.txt

通过以$结尾,确保字符串'path'在行的末尾。