ฉันมีรายชื่อที่ด้านล่างนี้:
str_lst:
- "someline user1 OK somedata somecommand"
- "someline user1 OK somedata somecommand"
- "someline user1 OK somedata somecommand"
- "someline user2 OK somedata somecommand"
- "someline user2 OK somedata somecommand"
ฉันต้องสร้างเป็นแผนที่กับ'ที่สองทุ่งจากแต่ละสาย':'เป็นจำนวน'.
ฉันพยายามที่ด้านล่าง Jinja2 รหัสแต่ก็ไม่แน่ใจนักว่ายังไงเพื่อให้คนทั้งหมดนับสำหรับแต่ละรายการ:
- set_fact:
users: |-
{%- set users = [] -%}
{%- set u_dict = {} -%}
{%- for i in str_lst -%}
{{ users.append(i.split()[1]) }}
{%- endfor -%}
{%- for j in users -%}
{{ u_dict.update({j:j.count(j)}) }}
{%- endfor -%}
{{ u_dict }}
- debug: var=users
แสดงผล:
"users": {
"user1": 1,
"user2": 1
}
คาดหวังตัวเลือกการไล่ระดับสี
"users": {
"user1": 3,
"user2": 2
}
มีความคิดวิธีที่จะประสบความสำเร็จในส่วนนี้? ขอบคุณล่วงหน้า