我似乎很愚蠢用Bash解析一些HTML文件。我们有一些文件有如下行:
var A4_total = 2018 + 4730;
var Other1_total = 3242 + 3828;
(他们告诉我们打印机打印了多少页)。 我需要一起计算前两个值(2018和3242)。我的方法是:
hilfsvar1=$(echo `grep -F var\ A4_total StatCntMedia.htm | sed 's/var\ A4\_total\ \=\ //g'` | sed -ne "s/^[^=]\++//p" | sed 's/;//g'); hilfsvar2=$(echo `grep -F var\ Other1_total StatCntMedia.htm | sed 's/var\ Other1\_total\ \=\ //g'` | sed -ne "s/^[^=]\++//p" | sed 's/;//g'); echo "$hilfsvar1 + $hilfsvar2" | bc
这会失败。这两个变量确实有正确的内容:
[User]# echo $hilfsvar1
4730
[User]# echo $hilfsvar2
3828
但这是我无法前进的地方:
[User]# echo "$hilfsvar1 + $hilfsvar2"
+ 3828
(对不起我的脚本,我不会对脚本语言有更深入的了解:)) - 如果有人有解决方案,我会很乐意以另一种方式解决这个问题。
提前致谢,Jonas
答案 0 :(得分:1)
听起来这可能是你正在寻找的东西:
$ awk '{sum[4]+=$4; sum[6]+=$6} END{print sum[4], sum[6]}' file
5260 8558
如果没有,请更新您的问题以显示预期的输出。
看起来你可能完全走错了路,并尝试做一些应该完全用awk完成的shell。
答案 1 :(得分:0)
尝试类似:
awk '/A4_total|Other1_total/ {print $4+$6}' StatCntMedia.htm
Output:
6748
7070
搜索A4_total或Other1_total,添加以空格分隔的第4和第6个字段并显示输出。