将总计添加到bash脚本的输出中
我正在运行一个bash脚本,该脚本查看错误日志并生成一个在Mac终端中打印的报告 当前,输出如下所示:将总计添加到bash脚本的输出中,bash,function,for-loop,while-loop,Bash,Function,For Loop,While Loop,我正在运行一个bash脚本,该脚本查看错误日志并生成一个在Mac终端中打印的报告 当前,输出如下所示: This error report is derived from Command Logs from ________ to __________. IP addresses: 109.xx.xxx.xxx Error Codes List: (code 12) (code 30) Common Errors - Count: Code 2: Code 10: Code
This error report is derived from Command Logs from ________ to __________.
IP addresses:
109.xx.xxx.xxx
Error Codes List:
(code 12)
(code 30)
Common Errors - Count:
Code 2:
Code 10:
Code 11:
Code 12: 237
Code 14:
Code 20:
Code 23:
Code 30: 5
Code 35:
Code 37:
Code 52:
/usr/local/bin/backerr: line 45: `$skipping': not a valid identifier
Total: 242
Total Files Transferred:
3558
Count complete.
The following are details for each error:
// all of the 242 above-referenced lines //
Skipped files:
// lists all of the lines that have the word 'skipping\ ' //
如您所见,我没有正确的标识符:
/usr/local/bin/backerr: line 45: `$skipping': not a valid identifier
这是代码,我必须检测其中包含“跳过”的行,计算总数,并在上面的代码XX:total下打印总数。此外,我希望将“跳过”总数添加到“总计:242”
count=()
total=0
while read skipping; do
(( count[$skipping]++, total++ ))
done < <(grep 'skipping\ ' $input_variable)
for $skipping in $input_variable; do
echo "Skipped: ${count[$skipping]}"
done
我被困在这里了。请帮忙
作为一种解决方法,不要使用以下代码:
while read skipping; do
(( count[$skipping]++, total++ ))
done < <(grep 'skipping\ ' $input_variable)
for $skipping in $input_variable; do
echo "Skipped: ${count[$skipping]}"
done
但是,这并没有真正产生我最初设想的理想结果。您的
for
循环不应该为索引变量使用美元符号:
for skipping in $input_variable; do
^^^
为什么
<@SMA::将命令的输出视为一个文件。在所有代码总计(代码2:代码10:代码11:代码12:237:代码14:代码20:代码23:代码30:5:代码35:代码37:代码52:)下面,我希望有一行显示“跳过:'n'”,其中“n”是总计。然后,我想将跳过的总数添加到底部的总数中。你明白吗?我刚刚用期望的结果更新了问题。谢谢。嗯,但是你如何从上面的输入中得到107
和349
数字呢?我做到了,但是我得到了`/usr/local/bin/script:line 44:filename:syntax error:invalid算术运算符(错误标记是“@filename””@technerdius脚本中的“filename”在哪里?filename是$input\u变量
echo "Total Skipped Files: " ; egrep -c 'skipping' $input_variable ;
for skipping in $input_variable; do
^^^