1
该实施例示出了输出文件大得多吨的exatractxmlstarlet SEL不显示后续行正确
xmlstarlet fo jira-output.xml | egrep 'hours|username|worklog|work_date' | egrep -v 'external|time' | head -20
给我大约这样的:
#<worklogs date_from="2014-06-01 00:00:00" date_to="2014-06-30 23:59:59" number_of_worklogs="222" format="xml" diffOnly="false" errorsOnly="false" validOnly="false" addBillingInfo="false" addIssueSummary="false" addIssueDescription="false" duration_ms="106" headerOnly="false" userName="" addIssueDetails="false" addParentIssue="false" addUserDetails="false" addWorklogDetails="false" billingKey="" issueKey="" projectKey="">
# <worklog>
# <worklog_id>15650</worklog_id>
# <hours>0.11666667</hours>
# <work_date>2014-06-07</work_date>
# <username>cadalso</username>
# </worklog>
# <worklog>
# <worklog_id>15653</worklog_id>
# <hours>0.2</hours>
# <work_date>2014-06-07</work_date>
# <username>cadalso</username>
# </worklog>
# <worklog>
# <worklog_id>15941</worklog_id>
# <hours>4.0</hours>
# <work_date>2014-06-17</work_date>
# <username>mrjcleaver</username>
# </worklog>
# <worklog>
#</worklogs>
这很好地执行,共计
xmlstarlet sel -T -t -v "sum(worklogs/worklog/hours)" --nl jira-output.xml
这个总数是不同的,但只是因为XML文件中有更多的行
4.31666667
但下面
xmlstarlet sel -T -t -m /worklogs/worklog/worklog_id -v "concat('|',/worklogs/worklog/staff_id,' | ', /worklogs/worklog/worklog_id,' | ',/worklogs/worklog/work_date,' | ',/worklogs/worklog/hours,' |')" --nl jira-output.xml
表演:
#| cadalso | 15650 | 2014-06-07 | 0.11666667 |
#| cadalso | 15650 | 2014-06-07 | 0.11666667 |
#| cadalso | 15650 | 2014-06-07 | 0.11666667 |
#... one for each row, but with the wrong values
而我想要的是:
#| cadalso | 15650 | 2014-06-07 | 0.11666667 |
#| cadalso | 15653 | 2014-06-07 | 0.2 |
#| mrjcleaver | 15941 | 2014-06-17 | 4.0 |
我在做什么错? 谢谢,M.
你在'concat'表达式中使用绝对路径,相对于'-m'atched一个路径尝试。 – npostavs