如何替换XML文档中的所有匹配字符串

时间:2019-05-13 20:11:17

标签: xml bash parsing awk sed

我有一个FQDN,主机名,MAC地址和IP地址的列表。感谢oguz ismail,我可以使用上面的列表并创建新文件:

workstation_list.txt中的主机信息列表:

workstation1

workstation1.domain.com

127.0.0.1

00:00:00:00:00:00


workstation2

workstation2.domain.com

127.0.0.2

11:11:11:11:11:11

所需的输出:

< HOST_NAME >workstation3< /HOST_NAME >

< HOST_FQDN >workstation3.domain.com< /HOST_FQDN >

< IP >127.0.0.0< /IP >

< MAC >33:33:33:33:33:33< /MAC >

oguz ismail https://stackoverflow.com/users/10248678/oguz-ismail给出的代码

awk -v RS='\n\n' '{      
  print "< HOST_NAME >" $1 "< /HOST_NAME >" > $1

  print "< HOST_FQDN >" $2 "< /HOST_FQDN >" > $1

  print "< IP >"        $3 "< /IP >"        > $1

  print "< MAC >"       $4 "< /MAC >"       > $1

  close($1)


}' workstation_list.txt

代替创建新文件,我需要替换与现有文件中的“所需输出”匹配的字符串。

有人告诉我sed可能是最简单的方法,但是我不确定如何用sed遍历多个变量。

谢谢您的帮助!

摘要:我不想创建工作站3.xml,而是用更新的工作站3 FQDN,IP,MAC和主机名代替了工作站3.xml中的XMLstrings。

How to add a string from a file into matching files

0 个答案:

没有答案