我在XML中有这一行
<application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
我想在“〈应用程序”后面插入下面一行
android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true"
最终输出如下所示
<application android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true" android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true">
我尝试了下面的sed命令,它没有做任何事情。
sed -i '/<application>/a\ android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true" ' filename.xml
尝试了下面的,它添加了所需的行在下一行。但我想有后,立即申请。
sed -i '/<application/a android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true"' filename.xml
1条答案
按热度按时间nzk0hqpo1#
搜索
<application>
时找不到匹配的<application key=value>
。解决眼前的问题:为什么
a
没有追加一行?将代码更改为搜索
<application[ >]
,这将不再是一个问题:......正确地(只要问题是
a
操作没有触发和追加行)发出:但是,这并不能保证生成一个有效的XML文档,使用
sed
编辑XML是天生的、无法修复的错误,任何人都不应该这样做。言归正传:在现有行上添加属性
如果您的真实的目标不是在元素后面追加一行,而是在现有元素中 * 添加属性 *,那么更接近于纠正的内容(在使用结构未知工具编辑结构化数据的固有的、不可避免的不可靠性范围内)可能如下所示: