XML ファイルの特定の行の前に数行挿入しようとしています。機能していますが、フォーマットは保持されません。先頭の空白は無視されます。IFS= を使用する必要があることはわかっています。他の多くのリンクに加えて、次のリンクでもクロスチェックしましたが、役に立ちませんでした。:(
私がここで犯している間違いを誰か指摘してもらえますか?
読み取り中に先頭の空白を保持する>> bashでファイルを1行ずつ書き込む
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>
config.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>
...
...