2

我正在尝试在将 xml 文档导入数据库之前对其进行格式化。我有几百行,<Image #1 File Name>Random string to find and replace</Image #1 File Name>我不知道在正则表达式中正确的查找和替换模式来做我需要的事情。我能够将所有实例与此匹配:

<Image #1 File Name>(.*?)</Image #1 File Name>

但我不确定我需要在打开/关闭标签之间用下划线替换空格的模式<Image #1 File Name>Random_string_to_find_and_replace</Image #1 File Name>

4

2 回答 2

1
awk -F'<|>' '{gsub(/ /,"_",$3);print"<"$2">"$3"<"$4">"}' yourxmlfile

好的,您可以~在过滤之前使用匹配运算符进行检查:

awk -F'<|>' '{if ($0 ~ /Image #1 File Name/) {gsub(/ /,"_",$3);print"<"$2">"$3"<"$4">"} else {print;}}' yourxmlfile
于 2012-08-15T22:05:02.950 回答
0

我建议下一个技巧:

  1. <Image #1 File Name>and替换</Image #1 File Name>为两个不同的不带空格的特殊词(示例MY_START_TAGMY_END_TAG)。
  2. 用下划线替换所有空格。
  3. 还原第一步。

分而治之:)

于 2012-08-17T06:54:34.917 回答