为了账号安全,请及时绑定邮箱和手机立即绑定

Linux Shell脚本= grep -o -P'FE =。*?'不工作

Linux Shell脚本= grep -o -P'FE =。*?'不工作

慕桂英546537 2021-04-06 23:15:26
我仍然感到困惑,因为我在自动执行git push pull并编写帖子接收时出现了问题,下面提到的来自开发人员端的行存储提交日志存储在文件中,但它做错的是仅存储FE=。我想要它商店FE='anything that developer write here'。var_custom_FE_log="$( git log -1 --no-merges $branch | grep -o -P 'FE=.*? ' )
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

如果要匹配FE=value,则应删除-ogrep中的标志。比较:


$grep -o -P 'FE=.*?' <<< "FE=some text here"

FE=


$grep -P 'FE=.*?' <<< "FE=some text here"

FE=some text here

如果每行只有一个声明,则无需使用惰性量词.*?。您可以使用.*和删除-P标志:


$grep 'FE=.*' <<< "FE=some text here"

FE=some text here


查看完整回答
反对 回复 2021-04-16
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

在您的代码中,我看不到任何天生的错误。grep将返回一个string FE=,后跟(可选)非空白字符,然后是一个空格。例如,如果紧接在后面,则有一个空格FE=,例如

xxxx FE= anything that developer write here

您将只获得FE = (带有尾随空格),而该行

xxxx FE=anything that developer write here

会给你FE =任何东西 (再加上尾随空格)。

顺便说一句,虽然您的-P标志没有错,但-E在您的情况下就足够了。


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 390 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信