gpt4 book ai didi

shell - sed:保留每个包含 block 模式的单词的最后一个 block

转载 作者:行者123 更新时间:2023-12-04 08:46:39 26 4
gpt4 key购买 nike

愿意只保留最后一块包含点的单词(仍然保留不包含模式的单词):
sed 似乎只匹配最后一个词:

$ echo "Here this.is.a.start is a very.nice.String  that.is.the.end yes " | sed 's/.*[ ]\([^ ]*\.\)\([^ ]*\)[ ].*/\2/g'
end

$ echo "Here this.is.a.start is a very.nice.String that.is.the.end yes " | sed 's/.*[ ]\([^ ]*\.\)\([^ ]*\)[ ].*/\1/g'
that.is.the.
我该怎么做才能得到这个结果? :
echo "Here this.is.a.start is a very.nice.String  that.is.the.end yes " | sed s\\\g
Here start is a String end yes

最佳答案

您可以使用

sed -E 's/([^ .]+\.)+([^ .]+)/\2/g'
sed -E 's/([^[:space:].]+\.)+([^[:space:].]+)/\2/g'
[:space:]将考虑任何空格,而不仅仅是空格字符。
online sed demo :
echo "     * {@link my.tailor.is.rich but( ther.is.a.hole.in.my.pants )}. " | \
sed -E 's/([^ .]+\.)+([^ .]+)/\2/g'
# => " * {@link rich but( pants )}. "
详情
  • ([^ .]+\.)+ - 一次或多次出现
  • [^ .]+ - 除空格和点以外的任何一个或多个字符
  • \. - 一个点

  • ([^ .]+) - 第 2 组:除空格和点以外的任何一个或多个字符。
  • 关于shell - sed:保留每个包含 block 模式的单词的最后一个 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64281386/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com