输入文件:输入.txt
<UndefineProperty name="admin.admin.adapters"/>--><!--<AddToProperty
name="admin.admin.adapters"
value="abc^abc.xz=abc"/>--><Property name="admin.admin.adapters" ride="true"
targetFile="file/path/file.txt"
value="abc,xz=abc,xz=com^abc.com.xz=abc,ac=com"/>
<ConfigurationRef xlink:href="file/path/file.xconf"/>
<ConfigurationRef xlink:href="file1.xconf"/>
<ConfigurationRef xlink:href="file2.xconf"/>
<Property name="ac.abc.Password" ride="true"
targetFile="file/path/abc.properties"
value="ac.abc.encryptedPassword"/>
<Property name="ac.pqr.Protocol" ride="true"
targetFile="file/pqr.properties"
value="https"/>
输出:
<UndefineProperty name="admin.admin.adapters"/>-->
<!--<AddToProperty name="admin.admin.adapters" value="abc^abc.xz=abc"/>-->
<Property name="admin.admin.adapters" ride="true" targetFile="file/path/file.txt" value="abc,xz=abc,xz=com^abc.com.xz=abc,ac=com"/>
<ConfigurationRef xlink:href="file/path/file.xconf"/>
<ConfigurationRef xlink:href="file1.xconf"/>
<ConfigurationRef xlink:href="file2.xconf"/>
<Property name="ac.abc.Password" ride="true" targetFile="file/path/abc.properties" value="ac.abc.encryptedPassword"/>
<Property name="ac.pqr.Protocol" ride="true" targetFile="file/pqr.properties" value="https"/>
已尝试:
delimiter="<"
newarray=()
while read -r line ;
do
newarray+=( "${line%%"$delimiter"*}" )
line=${delimiter}${line#*"$delimiter"}
echo ${line} >> input.txt1
done < input.txt
**注意:**以上代码未按预期工作。它只显示包含此(<)的输出,并且在上面的代码中也没有进行定向。
2条答案
按热度按时间4uqofj5v1#
不能用简单的sed或bash程序可靠地解析XML。
这个bash脚本从问题中提供的样例输入生成问题中提供的样例输出:
iih3973s2#
对
-E
和-z
使用GNU sed,这将从发布的示例输入(当然是不同输入的YMMV)中产生预期的输出: