使用Shell脚本用不同的字符串替换行中的文本

希望有人可以提供帮助;

我有一个xml文件,我想在其中搜索特定的字符串,然后在每次找到匹配项时都用不同的文本替换。例如,我需要在文件xml中使用机器标签搜索所有内容,因此结果看起来类似于;

...
<machine>devbox1.mydomain.com</machine>
...
<machine>devbox2.mydomain.com</machine>
...
<machine>devbox1.mydomain.com</machine>
...
<machine>devbox2.mydomain.com</machine>
...
<machine>devbox1.mydomain.com</machine>
...
...

现在,我有4个新系统,我需要替换每次出现的devbox *以结束类似的事情;

...
<machine>newbox1.mydomain.com</machine>
...
<machine>newbox2.mydomain.com</machine>
...
<machine>newbox3.mydomain.com</machine>
...
<machine>newbox4.mydomain.com</machine>
...
<machine>newbox1.mydomain.com</machine>
...
...

我已经尝试过以bash脚本的形式进行尝试,方法是建立一个while循环来读取每一行和grep所需的字符串,但是我不确定这是否是最好的方法?

任何提示或指针,将不胜感激。

谢谢C

杰德赫萨

假设<machine>每行标记不能超过一个(或者至少要替换的标记不超过一个),那么此Python脚本应该可以完成以下工作:

#!/usr/bin/env python

import sys
import re
from itertools import cycle

regex = re.compile('^(.*<machine>)devbox\d+(\.mydomain\.com</machine>.*)$')
box = cycle([1, 2, 3, 4])
for l in sys.stdin:
  m = regex.match(l)
  if m:
    l = m.group(1) + 'newbox' + str(next(box)) + m.group(2)
  print(l)

将其保存到文件(例如newboxer.py)并使其可执行,然后可以使用:

> ./newboxer.py < input.xml > output.xml

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Shell脚本用不同的字符串替换行中的文本

来自分类Dev

使用Shell脚本替换文本文件中的字符串无法正常工作

来自分类Dev

用不同的文本长度替换字符串中不同长度的数字

来自分类Dev

Shell脚本中的字符串替换

来自分类Dev

如果使用Shell脚本匹配字符串的一部分,则替换行

来自分类Dev

如何在Eclipse for Java中对字符串和其他项目使用不同的换行

来自分类Dev

如何用文本文件中的shell脚本替换多个字符串

来自分类Dev

Shell脚本:替换和添加字符串中的字符

来自分类Dev

替换行 shell 脚本中的特定字符

来自分类Dev

sed脚本用换行符替换字符串中的字符串“ \ n”

来自分类Dev

如何用不同的字符串替换一组文件中的字符串?

来自分类Dev

替换相同的字符串但使用不同的字符串值?

来自分类Dev

如何在Unix Shell脚本中替换字符串

来自分类Dev

在 shell 脚本中使用替换字符串作为命令

来自分类Dev

无法替换Groovy脚本中的字符串文本

来自分类Dev

替换行中的字符串

来自分类Dev

Shell脚本子字符串替换

来自分类Dev

使用bash shell脚本替换文件中的字符串

来自分类Dev

Shell脚本,如何使用sed替换xml文件中字符串的单个实例

来自分类Dev

使用Shell脚本/命令替换多个文件中的(单个)字符串?

来自分类Dev

将Shell脚本中的字符串替换为具有特殊字符的字符串

来自分类Dev

将Shell脚本中的字符串替换为具有特殊字符的字符串

来自分类Dev

用不同的字符替换字符串中的多个字符

来自分类Dev

用不同的替换替换数据库列中的多个字符串

来自分类Dev

如何使用Shell脚本更改文本字符串

来自分类Dev

awk脚本,用于用不同的数字替换不同文件中同一行中多次出现的字符串模式

来自分类Dev

使用Power Shell在文本文件中查找和替换字符串

来自分类Dev

用转到文本区域的字符串中的换行符替换文本

来自分类Dev

如何用不同的字符替换字符串中的第一个空格?

Related 相关文章

  1. 1

    使用Shell脚本用不同的字符串替换行中的文本

  2. 2

    使用Shell脚本替换文本文件中的字符串无法正常工作

  3. 3

    用不同的文本长度替换字符串中不同长度的数字

  4. 4

    Shell脚本中的字符串替换

  5. 5

    如果使用Shell脚本匹配字符串的一部分,则替换行

  6. 6

    如何在Eclipse for Java中对字符串和其他项目使用不同的换行

  7. 7

    如何用文本文件中的shell脚本替换多个字符串

  8. 8

    Shell脚本:替换和添加字符串中的字符

  9. 9

    替换行 shell 脚本中的特定字符

  10. 10

    sed脚本用换行符替换字符串中的字符串“ \ n”

  11. 11

    如何用不同的字符串替换一组文件中的字符串?

  12. 12

    替换相同的字符串但使用不同的字符串值?

  13. 13

    如何在Unix Shell脚本中替换字符串

  14. 14

    在 shell 脚本中使用替换字符串作为命令

  15. 15

    无法替换Groovy脚本中的字符串文本

  16. 16

    替换行中的字符串

  17. 17

    Shell脚本子字符串替换

  18. 18

    使用bash shell脚本替换文件中的字符串

  19. 19

    Shell脚本,如何使用sed替换xml文件中字符串的单个实例

  20. 20

    使用Shell脚本/命令替换多个文件中的(单个)字符串?

  21. 21

    将Shell脚本中的字符串替换为具有特殊字符的字符串

  22. 22

    将Shell脚本中的字符串替换为具有特殊字符的字符串

  23. 23

    用不同的字符替换字符串中的多个字符

  24. 24

    用不同的替换替换数据库列中的多个字符串

  25. 25

    如何使用Shell脚本更改文本字符串

  26. 26

    awk脚本,用于用不同的数字替换不同文件中同一行中多次出现的字符串模式

  27. 27

    使用Power Shell在文本文件中查找和替换字符串

  28. 28

    用转到文本区域的字符串中的换行符替换文本

  29. 29

    如何用不同的字符替换字符串中的第一个空格?

热门标签

归档