gpt4 book ai didi

regex - 如何在非空格文本开始之前删除前面的空格 + 正则表达式 + sed +

转载 作者:行者123 更新时间:2023-11-29 09:08:24 25 4
gpt4 key购买 nike

如何删除 echo 输出中 809 之前的空格??

这是我的示例:

$ echo '   809 23/Dec/2008:19:20'
809 23/Dec/2008:19:20
^^^3 spaces here preceding the 809

我可以使用 sed 删除 3 或 4 个空格:

        ...4 spaces here   
$ echo ' 809 23/Dec/2008:19:20' | sed 's/^.\{3\,4\}//'
809 23/Dec/2008:19:20
0 spaces here preceding the 809

但我想要的是我的 sed 命令可以处理大于 3 的任何东西

        .....5 spaces here
$ echo ' 809 23/Dec/2008:19:20' | sed 's/^.\{3\,4\}//'
809 23/Dec/2008:19:20
^1 spaces here preceding the 809

如何在 sed 中编写我的正则表达式以删除 809 之前的 3 个或更多空格?

最佳答案

如果你想在开始使用时删除 3 个或更多空格

sed 's/^[[:blank:]]\{3,\}//'

详情

  • ^ - 输入开始
  • [[:blank:]]\{3,\} - 任何水平空格连续出现 3 次或更多次。

如果您需要在特定值(例如 809)之前删除开头的 3 个以上空格,只需将该值添加到正则表达式和替换模式中即可:

sed 's/^[[:blank:]]\{3,\}809/809/'

或使用捕获组和占位符:

sed 's/^[[:blank:]]\{3,\}\(809\)/\1/'

enter image description here

关于regex - 如何在非空格文本开始之前删除前面的空格 + 正则表达式 + sed +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48938696/

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