我试图在 xml 文件中的特定行之前插入几行。虽然它正在工作,但格式没有保留。前导空格被忽略。我知道我们必须使用 IFS= 并且除了许多其他链接之外,我还在以下链接中进行了交叉检查,但无济于事。:(
谁能指出我在这里犯的错误?
while read line
do
pattern=keepDependencies
input_file=/home/john/data_file
file_to_change="${backup_dir}/"$line"/config.xml"
while IFS= read -r insert_text
do
sed -i "/$pattern/i $insert_text" $file_to_change
done < "$input_file"
done < days_to_keep_absent
数据文件:
[john ~]$ cat data_file
<logRotator>
<daysToKeep>-1</daysToKeep>
<numToKeep>5</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
配置.xml:
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description>I'll clean all the temporary permissions</description>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.security.AuthorizationMatrixProperty>
...
...
输出:
<?xml version='1.0' encoding='UTF-8'?>
<project>
<actions/>
<description>I'll clean all the temporary permissions</description>
<logRotator>
<daysToKeep>-1</daysToKeep>
<numToKeep>5</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.security.AuthorizationMatrixProperty>
...
...