星体海盗
所以我有这样的shell脚本:
echo "stackoverflow.com:1111/?a=b&c=d" | grep -o "^.*[/:\n]"
它返回
stackoverflow.com:1111/
它不应该返回符号“ /”,“:”或“ \ n”之一之前的第一个前缀吗?我该如何退货
stackoverflow.com:
使用正则表达式?
第四只鸟
您可以排除字符/
:
或\n
使用否定的字符类^[^/:\n]*
使用\n
带有-P
一个Perl的正则表达式兼容:
echo "stackoverflow.com:1111/?a=b&c=d" | grep -oP "^[^/:\n]*"
或从字符串中排除空格而无需 -P
echo "stackoverflow.com:1111/?a=b&c=d" | grep -o "^[^/:[:space:]]*"
Bash演示
如果您也想:
在末尾匹配,则可以匹配^[^/:\n]*:
Bash演示
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句