我有很多 bash
脚本在 grep
中使用 perl
表达式来提取两个分隔符之间的子字符串。示例:
echo BeginMiddleEnd | grep -oP '(?<=Begin).*(?=End)'
问题是,当我将这些脚本移植到运行 busybox
的平台时,“集成”grep
无法识别 -P 开关。有没有一种使用 grep
和 正则表达式
来做到这一点的简洁方法?
编辑:
该平台上没有 perl
、sed
或 awk
。它是一个轻量级的 linux
。
最佳答案
您可以像这样使用带有自定义字段分隔符的 awk
来获得相同的输出:
echo 'BeginMiddleEnd' | awk -F 'Begin|End' '{print $2}'
Middle
关于regex - grep 两个分隔符之间的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26347404/