使用 sed 删除 [[:space:]] 之后的所有内容

2024-06-21

如何删除空格后的所有内容?如果我指定冒号“:”而不是[[: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(使用前将#替换为@)

使用 sed 删除 [[:space:]] 之后的所有内容 的相关文章

随机推荐