如果缺少,则在 xml 文档中插入一行字符串

问题描述 投票:0回答:0

团队, 我怎样才能摆脱正在执行的插入中的“t”?还有更好的方法吗?

我的用例正在生成一个 bazel 覆盖率报告,该报告是 test.dat,它正在使用

lcov_cobertura
enter link description here 转换为 dat.xml 转换后 xml 字段缺少一个节点,我正在使用 sed 手动将其重新插入,因为我不知道为什么会丢失它。

我不知道为什么它没有插入那条线或没有插入。所以我在插入它时需要帮助,但我看到一个额外的

t
被插入,用于制表符空间。

raw bazel output test.dat is

DA:931,0
LH:129
LF:693
end_of_record
TN:
SF:src/common/test.go
DA:10,0
DA:11,0
DA:12,0
DA:13,0
DA:14,0
DA:15,0
DA:17,0
DA:18,0
DA:19,0
DA:20,0
DA:22,0
LH:0
LF:11
end_of_record
TN:
SF:src/common/test.go
DA:9,1

使用

lcov_cobertura test.dat -o coverage.xml
转换 cat
coverage.xml
< missing the src/common/test.go on line 8. so for now am manually inserting it with sed and it is showing char
t
在行首。请指教

<lineToCover branch="false" covered="false" lineNumber="445"/>
                                                <lineToCover branch="false" covered="false" lineNumber="446"/>
                                </file>
                                <file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.18614718614718614" name="src.common.test.go">
                                                <lineToCover branch="false" covered="true" lineNumber="68"/>
                                                <lineToCover branch="false" covered="false" lineNumber="929"/>
                                                <lineToCover branch="false" covered="false" lineNumber="931"/>
                                </file>
                                                <lineToCover branch="false" covered="false" lineNumber="10"/>
                                                <lineToCover branch="false" covered="false" lineNumber="11"/>
                                                <lineToCover branch="false" covered="false" lineNumber="22"/>
                                </file>
                                <file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.8055555555555556" name="src.common.test.go">
                                                <lineToCover branch="false" covered="true" lineNumber="9"/>
                                                <lineToCover branch="false" covered="true" lineNumber="10"/>
                                                <lineToCover branch="false" covered="true" lineNumber="45"/>
                                                <lineToCover branch="false" covered="true" lineNumber="46"/>
                                </file>
                                <file branch-rate="0.0"

预计会看到下面第 8 行的插入

<file branch-rate=0.0 complexity=0 path=src/common/test.go....

                                                <lineToCover branch="false" covered="false" lineNumber="445"/>
                                                <lineToCover branch="false" covered="false" lineNumber="446"/>
                                </file>
                                <file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.18614718614718614" name="src.common.test.go">
                                                <lineToCover branch="false" covered="true" lineNumber="68"/>
                                                <lineToCover branch="false" covered="false" lineNumber="929"/>
                                                <lineToCover branch="false" covered="false" lineNumber="931"/>
t                               <file branch-rate=0.0 complexity=0 path=src/common/test.go line-rate=0.8055555555555556 name=src.common.test.go>
                                </file>
                                                <lineToCover branch="false" covered="false" lineNumber="10"/>
                                                <lineToCover branch="false" covered="false" lineNumber="11"/>
                                                <lineToCover branch="false" covered="false" lineNumber="22"/>
                                </file>
                                <file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.8055555555555556" name="src.common.test.go">
                                                <lineToCover branch="false" covered="true" lineNumber="9"/>
                                                <lineToCover branch="false" covered="true" lineNumber="10"/>
                                                <lineToCover branch="false" covered="true" lineNumber="45"/>
                                                <lineToCover branch="false" covered="true" lineNumber="46"/>
                                </file>
                                <file branch-rate="0.0"



我的命令是

var=$(grep -e "</file>" test.xml -A 1 -n | grep "<lineToCover" -A 1 -B 1 | sed -n '1p' | cut -d':' -f 1)
sed -i "${var} i \t\t\t\t\tNEWS" test.xml
string_me="<file branch-rate="0.0" complexity="0" path="src/common/test.go" line-rate="0.8055555555555556" name="src.common.test.go">"
sed -i "${var} i \t\t\t\t\t${string_me}" c.xml && cat c.xml
xml bash sed xml-parsing
© www.soinside.com 2019 - 2024. All rights reserved.