sed - 搜索并替换2个标记

时间:2014-11-12 13:38:43

标签: string bash shell command-line sed

我想搜索一个字符串并对其进行修改

我构建了一个像这样的字符串:

|Bor.Team1-FCTeam2|

但也是:

|FCTeam2-Bor.Team1|

或作为模式

|Text–Text|

我想更改Team1的名称,它可以有不同的名称,例如:

Bor.Team1
B.Team1
BTeam091
...

我希望每次都有相同的名字 - > B.Team1

Team每次都是不同的用语!

我和sed 's/\bBor.Team1\b/B.Team1/g'一起玩,但我必须找到并了解每一个不同的用语。

2 个答案:

答案 0 :(得分:0)

那个shoudl做你需要的:

echo $string | sed -e 's/[a-zA-Z\.]\+Team\([0-9]\+\)/B.Team\1/g'

搜索字母字符以及点(.),后跟单词Team,后跟数字([0-9])。这一切将被你想要的任何东西取代。在示例中,B.Team后跟找到的号码(\1)。

答案 1 :(得分:0)

查找并替换任何内容Team1 d替换整个B.Team1并在每个| |包围的内容中保持计数器部分相同

sed -e 's/\|[^-|]*Team1[^-|]*-\([^|]*\)|/|B.Team1-\1|/g
        s/\|\([^-|]\)-[^|]*Team1[^|]*|/|\1-B.Team1|/g' YourFile

例如:

  • | bla.team1.corp-其他| - > | B.team1-其他|
  • | ot.her-foolteam1 | - > | ot.her-B.team1 |