如何删除空格后的所有内容?如果我指定冒号“:”而不是[[:space:]],我就可以做到这一点。
$ cat t.sh
echo "DW_Prod\\Facets\\UNRCH_MBRS: UNRCH_Members.sql" | \
sed -r -e 's#.*\(DW_Prod.*\)[[:space:]].*#\\1#'
$ ./t.sh
DW_Prod\Facets\UNRCH_MBRS: UNRCH_Members.sql
您正在启用 ERE 元字符-r
然后禁用 ERE 捕获组(...)
通过转义分隔符\(...\)
并禁用反向引用\1
通过转义反斜杠\\1
。尝试这个:
$ echo "DW_Prod\\Facets\\UNRCH_MBRS: UNRCH_Members.sql" | \
sed -r -e 's#.*(DW_Prod.*)[[:space:]].*#\1#'
DW_Prod\Facets\UNRCH_MBRS:
但你真正需要的是:
$ echo "DW_Prod\\Facets\\UNRCH_MBRS: UNRCH_Members.sql" |
sed 's#[[:space:]].*##'
DW_Prod\Facets\UNRCH_MBRS:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)