我执行了一个打印出一些数据的脚本。它看起来像这样:
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
更多)。