2つの文字列を特定の順序でgrepし、私のgrepに基づいて1行ずつ値を計算するにはどうすればよいですか?

2つの文字列を特定の順序でgrepし、私のgrepに基づいて1行ずつ値を計算するにはどうすればよいですか?

Pythonのテキスト辞書があり、それを人間が読めるように編集しているとしましょう。これで、次の入力のように1行ずつ表示されます。

入力する

{"case":"0901","emailed":"yes","vote":1,"accepted":"no"},
{"case":"0908","emailed":"yes","vote":8,1"accepted":"yes"},
{"case":"0911","emailed":"no","vote":10,1"accepted":"yes"},
{"case":"0090","emailed":"yes","vote":3,1"accepted":"no"},

**すべてのテキストファイルは古い形式です**

yesだから私は最初とno2番目を含む行を探したいと思います。

だから私は出力が次のようになると期待します

出力

{"case":"0901","emailed":"yes","vote":1,"accepted":"no"},
{"case":"0090","emailed":"yes","vote":3,1"accepted":"no"},

単語順にgrepする方法が見つかりませんでした。

2番目の質問は私の結果に関するものですか?

awk sum総投票数を計算する機能を使用できますか?これは4,1出力から出てくるはずです。

ベストアンサー1

確認する:

必要な行を印刷してください

awk -F'[,:]' ' 
$4 ~ "yes" && $8 ~ "no" {
    print;
}' input.txt

出力

{"case":"0901","emailed":"yes","vote":1,"accepted":"no"},
{"case":"0090","emailed":"yes","vote":3,1"accepted":"no"},

合計を計算

awk -F'[,:]' ' 
$4 ~ "yes" && $8 ~ "no" {
    sum += $6"."$7;
}
END {
    print sum;
}' input.txt

出力

4.1

おすすめ記事