然后:
A=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item></item></item></item>
B=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item>LOVER.png;LOVER-ever.png</item></item></item>
也许命令:sed、awk。
我正在更新我的错误写..
#!/bin/bash
replace_a=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item></item></item></item>
replace_b=<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item>LOVER.png;LOVER-ever.png</item></item></item>
....
....
答案1
使用字符[[:punct:]]
类sed
:
% LC_ALL=C sed 's/[[:punct:]]//g' <<<"$A"
item okmyworldhellomyearthmylandmycityitem or myloveheartmyGIRL
% LC_ALL=C sed 's/[[:punct:]]//g' <<<"$B"
item okmyworldhellomyearthmylandmycityitem or myloveheartmyGIRL ohmyGODiloveyouitemLOVERpngLOVEReverpngitemitemitem
[[:punct:]]
匹配语言环境中的以下字符C
:
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
答案2
我发现其他技巧:
sed -i '/earth/d' file.txt
echo '<item ok:my=world"hello/my.earth/my.land/mycity"><item or mylove:heart="myGIRL" oh:myGOD="i-love-you"><item>LOVER.png;LOVER-ever.png</item></item></item>' >> file.txt
这对技巧有好处吗?谢谢你们!
答案3
假设您的“A”字符串保存在名为 input.xml 的文件中:
sed -e 's/<item></<item>LOVER.png;LOVER-ever.png</' input.xml
这会将字符串“LOVER.png;LOVER-ever.png”插入到该行的第一个“空”<item></item> 中,将 A 字符串转换为 B 字符串。
请注意,使用正则表达式解析和操作 XML 或 HTML 或类似的结构化数据文件充其量是不可靠的(即使如此,也仅在最简单的情况下)。为了获得可靠的结果,应使用 XML 解析器或类似的解析器。以及有效的 XML。