正则表达式 – 使用星号登录grep
发布时间:2020-12-14 06:38:21 所属栏目:百科 来源:网络整理
导读:我试图在linux / bash的特定文件中搜索子字符串“abc” 所以我做: grep '*abc*' myFile 它什么也没有返回 但如果我这样做: grep 'abc' myFile 它正确返回匹配。 现在这对我来说不是问题。但是,如果我想为一个更复杂的字符串提供grep,比方说 *abc * def *
我试图在linux / bash的特定文件中搜索子字符串“abc”
所以我做: grep '*abc*' myFile 它什么也没有返回 但如果我这样做: grep 'abc' myFile 它正确返回匹配。 现在这对我来说不是问题。但是,如果我想为一个更复杂的字符串提供grep,比方说 *abc * def * 我如何使用grep完成它?
星号只是一个
repetition operator,但你需要告诉你重复的。 / * abc * /匹配包含ab和零个或多个c的字符串(因为第二个*在c上;第一个是无意义的,因为没有什么可以重复)。如果你想匹配任何东西,你需要说。* – 点意味着任何字符(
within certain guidelines)。如果你想要匹配abc,你可以说grep’abc’myFile。为了更复杂的匹配,你需要使用。* – grep’abc。* def’myFile将匹配一个包含abc的字符串,然后是def,其间可以是任意的。
基于评论更新: *正则表达式与控制台中的*不完全相同。在控制台中,*是glob construct的一部分,仅作为通配符(例如ls * .log将列出以.log结尾的所有文件)。然而,在正则表达式中,*是一个修饰符,这意味着它只适用于之前的字符或组。如果您希望*在正则表达式中作为通配符,则需要使用* *,如前所述 – 点是通配符,星标在修改点时意味着找到一个或多个点;即。找到一个或多个任何角色。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |