一部のデータを印刷するスクリプトを実行しました。次のようになります。
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
もっと)。