String sed-在2个标记之间搜索和替换

String sed-在2个标记之间搜索和替换,string,bash,shell,command-line,sed,String,Bash,Shell,Command Line,Sed,我想搜索一个字符串并修改它 我构建了这样一个字符串: |Bor.Team1-FCTeam2| 而且: |FCTeam2-Bor.Team1| 还是作为模式 |Text–Text| 我想更改Team1的名称,它可以有不同的名称,例如: Bor.Team1 B.Team1 BTeam091 ... 我希望每次都是相同的名字->B.Team1 团队每次都用不同的措辞 我在玩sed的/\bBor.Team1\b/b.Team1/g'游戏,但我必须找到并了解每个不同的用语。这应该满足您的需要: e

我想搜索一个字符串并修改它

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

|Bor.Team1-FCTeam2|
而且:

|FCTeam2-Bor.Team1|
还是作为模式

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

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

团队每次都用不同的措辞


我在玩sed的/\bBor.Team1\b/b.Team1/g'游戏,但我必须找到并了解每个不同的用语。

这应该满足您的需要:

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

它搜索字母字符和一个点。后面是单词Team,后面是数字[0-9]。一切都会被你想要的东西所取代。在本例中,B.Team后跟找到的数字\1。

找到并替换任何东西Team1,并用B.Team1替换整体,并在每个| |包围的内容中保持计数器部分相同

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

|bla.team1.corp other |->| B.team1-other| |ot.her-B团队1 |->| ot.her-B团队1| 在您的示例中,BTeam091与Team1有什么关系?您能提供一个条目和预期结果的示例,特别是关于要查找的| Text Text |模式吗?