如何计算上一个命令输出的 python 数组?

如何计算上一个命令输出的 python 数组?

我执行了一个打印出一些数据的脚本。它看起来像这样:

pi@pitwo:~/testing $ python3 scripts/test.py
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

我正在寻找一种 bash 命令方式来计算数据的长度。

我可以编写一个脚本来进行一些计数,或者甚至可以手工计数,因为它很短,但我想听听您对 linux/unix 老手如何执行此操作的意见。

答案1

使用 awk:

awk -F, '{print NF}'

这将使用逗号作为字段分隔符并打印字段总数。

答案2

由于它看起来像一个json数组,因此您可以将其通过管道传输到

jq length

答案3

你应该使用wc而不是awk,为什么?awk通常是一个较大的程序,请始终尝试最小化特定情况所需的马力。如果您唯一需要计算的是类似 python 的列表,即 ,[a, b, c]那么这wc是您最好的选择。但对于更复杂的任务,您可能需要使用awk.

在你的例子中:

pi@pitwo:~/testing $ python3 scripts/test.py | wc -w
48

这里我们使用-w标志来告诉wc我们想要单词计数(man wc更多)。

相关内容