我正在尝试过滤html文件以仅从文件中获取特定值。该文件是metatrader的html报告,我只想过滤html中的输出值表。
这是html文件(report2.html)的示例
<tr align="right">
<td nowrap colspan="3">Net profit:</td>
<td nowrap><b>17.74</b></td>
<td nowrap colspan="3">Balance Drawdown Absolute:</td>
<td nowrap><b>0.97</b></td>
<td nowrap colspan="3">Absolute equity drawdown:</td>
<td nowrap colspan="2"><b>1.39</b></td>
</tr>
<tr align="right">
<td nowrap colspan="3">Gross Profit:</td>
<td nowrap><b>43.91</b></td>
<td nowrap colspan="3">Balance Drawdown Maximal:</td>
<td nowrap><b>6.72 (0.07%)</b></td>
<td nowrap colspan="3">Equity Drawdown Maximal:</td>
<td nowrap colspan="2"><b>8.02 (0.08%)</b></td>
</tr>
<tr align="right">
<td nowrap colspan="3">Gross Loss:</td>
<td nowrap><b>-26.17</b></td>
<td nowrap colspan="3">Relative balance drawdown:</td>
<td nowrap><b>0.07% (6.72)</b></td>
<td nowrap colspan="3">Relative equity drawdown:</td>
<td nowrap colspan="2"><b>0.08% (8.02)</b></td>
</tr>
如果我使用
grep --no-group-separator -A1 awdown report2.html | sed -n '/^$/!{s/<[^>]*>//g;p;}'
我明白了。
Balance Drawdown Absolute:
0.97
Absolute equity drawdown:
1.39
Balance Drawdown Maximal:
6.72 (0.07%)
Equity Drawdown Maximal:
8.02 (0.08%)
Relative balance drawdown:
0.07% (6.72)
Relative equity drawdown:
0.08% (8.02)
问题是我需要在带有选项卡的第一行之后紧跟第二行,我不知道如何制作它,并且还需要在第一个选项卡中具有文件名。
预期输出是这样的:
report2.html Balance Drawdown Absolute: 0.97
report2.html Absolute equity drawdown: 1.39
report2.html Balance Drawdown Maximal: 6.72 (0.07%)
report2.html Equity Drawdown Maximal: 8.02 (0.08%)
report2.html Relative balance drawdown: 0.07% (6.72)
report2.html Relative equity drawdown: 0.08% (8.02)
任何人都可以帮助我如何实现此输出?
谢谢
答案 0 :(得分:0)
请尝试以下操作:
grep --no-group-separator -A1 awdown report2.html | sed -n '/^$/!{s/<[^>]*>//g;p;}' | sed '$!N;s/\n//'
我只是在您的命令之后添加了另一个流编辑命令
答案 1 :(得分:0)
另一种选择。
grep --no-group-separator -A1 awdown report2.html | sed -n '/^$/!{s/<[^>]*>//g;p;}' | awk 'NR%2{printf "%s ",$0;next;}1'