如何使用sed查找可能的星号[*]?在一个字符串?

时间:2015-09-29 19:57:59

标签: git bash sed

我正在尝试编写一个sed命令,因此它会在字符串的开头替换一个可能的星号(这是为了同时重命名一堆git分支)。

我的git branch会返回与以下内容类似的行:

  old-12345
* old-23456
  old-34567
  master

我希望sed输出上面输出的每一行,其中包含旧的:

new-12345
new-23456
new-34567

我认为以下其中一项可行:

$ echo "* old-12345" | sed 's/\*?\s*old-\(\d*\)/new-\1/'
$ echo "* old-12345" | sed 's/[*]?\s*old-\(\d*\)/new-\1/'
但遗憾的是它没有做任何事情。我想要\*?[*]?,因为git branch只会将*放在我当前所在的分支旁边。为什么?没有像我期望的那样工作?

1 个答案:

答案 0 :(得分:1)

试试这个

echo "* old-12345" | sed 's/.*old-\(\d*\)/new-\1/'