猿问

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

我仍然感到困惑,因为我在自动执行git push pull并编写帖子接收时出现了问题,下面提到的来自开发人员端的行存储提交日志存储在文件中,但它做错的是仅存储FE=。我想要它商店FE='anything that developer write here'

var_custom_FE_log="$( git log -1 --no-merges $branch | grep -o -P 'FE=.*? ' )


慕桂英546537
浏览 386回答 2
2回答

慕后森

如果要匹配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

人到中年有点甜

在您的代码中,我看不到任何天生的错误。grep将返回一个string&nbsp;FE=,后跟(可选)非空白字符,然后是一个空格。例如,如果紧接在后面,则有一个空格FE=,例如xxxx&nbsp;FE=&nbsp;anything&nbsp;that&nbsp;developer&nbsp;write&nbsp;here您将只获得FE =&nbsp;(带有尾随空格),而该行xxxx&nbsp;FE=anything&nbsp;that&nbsp;developer&nbsp;write&nbsp;here会给你FE =任何东西&nbsp;(再加上尾随空格)。顺便说一句,虽然您的-P标志没有错,但-E在您的情况下就足够了。
随时随地看视频慕课网APP
我要回答