在Bash中通过正则表达式从字符串中删除后缀?

时间:2018-05-31 09:14:57

标签: linux bash shell

我有一个字符串,以偶数个0填充到它。我想通过正则表达式0删除这些(00)*

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

如何在Bash中完成?一般来说,如何使用正则表达式删除任何后缀?

2 个答案:

答案 0 :(得分:0)

$ echo ababababab000000 abababab00 abab000000000 aba00000 | sed 's/00//g'
ababababab abababab abab0 aba0

答案 1 :(得分:0)

使用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