【问题标题】:Remove suffix from string by regular expression in Bash? [duplicate]通过Bash中的正则表达式从字符串中删除后缀? [复制]
【发布时间】:2018-11-10 06:06:59
【问题描述】:

我有一个以偶数个0 结尾的字符串。我想通过正则表达式(00)*删除这些0

ababababab000000 => ababababab
abababab00       => abababab
abab000000000    => abab0
aba00000         => aba0

如何在 Bash 中做到这一点?一般来说,我将如何使用正则表达式删除任何后缀?

【问题讨论】:

标签: linux bash shell


【解决方案1】:

使用sed -r 搜索任意正则表达式并将其替换为s/regex/replacement/$ 将正则表达式锚定到每行的末尾。

$ sed -r 's/(00)*$//' <<< 'ababababab000000'
ababababab
$ sed -r 's/(00)*$//' <<< 'abababab00'
abababab
$ sed -r 's/(00)*$//' <<< 'abab000000000'
abab0
$ sed -r 's/(00)*$//' <<< 'aba00000'
aba0

【讨论】:

    【解决方案2】:
    $ echo ababababab000000 abababab00 abab000000000 aba00000 | sed 's/00//g'
    ababababab abababab abab0 aba0
    

    【讨论】:

    • 如果一个字符串是a00b00000
    • @Kent - 好点。
    猜你喜欢
    • 2023-03-25
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 2014-06-20
    • 1970-01-01
    相关资源
    最近更新 更多