Regex grep和sed的不同匹配结果
我使用以下正则表达式来匹配github repo路径: :/ 但是,我从Regex grep和sed的不同匹配结果,regex,bash,shell,sed,grep,Regex,Bash,Shell,Sed,Grep,我使用以下正则表达式来匹配github repo路径: :/ 但是,我从grep和sed得到了不同的匹配结果: $ sed -nr 's|[:/]([^/]+/[^/]+)$|\1|' <<< 'https://github.com/myuser/myrepo' $ sed -nr '/[:\/]([^\/]+\/[^\/]+)$/p' <<< 'https://github.com/myuser/myrepo' $ grep -Eo '[:/]([^
grep
和sed
得到了不同的匹配结果:
$ sed -nr 's|[:/]([^/]+/[^/]+)$|\1|' <<< 'https://github.com/myuser/myrepo'
$ sed -nr '/[:\/]([^\/]+\/[^\/]+)$/p' <<< 'https://github.com/myuser/myrepo'
$ grep -Eo '[:/]([^/]+/[^/]+)$' <<< 'https://github.com/myuser/myrepo'
/myuser/myrepo
$sed-nr的|[:/]([^/]+/[^/]+)$|\1 |'如果您想要与您的grep
命令等效的sed
,请使用:
sed -r 's#^.*([:/][^/]+\/[^/]+)$#\1#' <<< 'https://github.com/myuser/myrepo'
/myuser/myrepo
sed-r的#^.*([:/][^/]+\/[^/]+)$#\1#'