【发布时间】:2018-10-02 02:08:43
【问题描述】:
我有一个这样的输入字符串
<keywords>key word 1, key word 2, key word 3, key word 4, key word 5, key word 6, .. </keywords>
最多可以有 10 个关键字 我必须将其转换为以下 xml 结构
<keyword1>key word 1</keyword1>
<keyword2>key word 2</keyword2>
<keyword3>key word 3</keyword3>
<keyword4>key word 4</keyword4>
<keyword5>key word 5</keyword5>
<keyword6>key word 6</keyword6>
<keyword7>...</keyword7>
我的脚本的其余部分是用于替换标签的简单 sed / awk 命令,仅此而已。 有人知道我如何将其转换为所需的结构吗? 感谢您的任何建议
更新:
我尝试了以下操作(来自post)
echo "<keywords>key word 1, key word 2, key word 3, key word 4, key word 5 </keywords>" | awk '{split($0,a,","); print "<keyword1>"a[1]"</keyword1>\n<keyword2>"a[2]"</keyword2>\n<keyword3>"a[3]"</keyword3>\n<keyword4>"a[4]"</keyword4>\n<keyword5>"a[5]"</keyword5>\n<keyword6>"a[6]"</keyword6>\n<keyword7>"a[7]"</keyword7>\n<keyword8>"a[8]"</keyword8>\n<keyword9>"a[9]"</keyword9>\n<keyword10>"a[10]"</keyword10>\n"}' | sed -e 's/<keywords>//g' |sed -e 's/<\/keywords>//g'
效果很好,输出如下:
<keyword1>key word 1</keyword1>
<keyword2> key word 2</keyword2>
<keyword3> key word 3</keyword3>
<keyword4> key word 4</keyword4>
<keyword5> key word 5 </keyword5>
<keyword6></keyword6>
<keyword7></keyword7>
<keyword8></keyword8>
<keyword9></keyword9>
<keyword10></keyword10>
也许这不是最好的方法……但它确实有效。 如果您有更好/更快的解决方案,我将不胜感激……
2 更新:
是否有机会仅对/<keywords>/,/<\/keywords>/ 之间的文本执行 awk / sed 命令
【问题讨论】: