2015-02-08 63 views
1

我使用下面的正則表達式匹配GitHub庫路徑: :/ 不過,我從grepsed不同的匹配結果:不同的比賽結果和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除外[:/])?

的grep:grep的(BSD的grep)2.5.1的FreeBSD
sed的:sed的(GNU SED)4.2.2
操作系統:Mac OSX 10.9.5

回答

1

如果你想等價sed爲您grep命令然後用:

sed -r 's#^.*([:/][^/]+\/[^/]+)$#\1#' <<< 'https://github.com/myuser/myrepo' 
/myuser/myrepo