在Ansible中,可以使用Jinja2的过滤器来统计字符串中单词出现的次数。以下是一个示例代码:
- hosts: localhost
gather_facts: false
tasks:
- name: Count word occurrences
vars:
my_string: "This is a sample string with repeated words. This is a sample string."
debug:
msg: "{{ my_string.split(' ') | groupby('') | map('list') | map('count') | list }}"
在上述示例中,我们定义了一个变量my_string
,并初始化为包含重复单词的字符串。然后,我们使用split(' ')
过滤器将字符串拆分为单词列表。接下来,我们使用groupby('')
过滤器按照单词分组,并使用map('list')
过滤器将每个组转换为列表。然后,我们使用map('count')
过滤器统计每个列表中单词的出现次数,并最后将结果转换为列表。
运行以上代码示例,将输出一个包含每个单词出现次数的列表。输出结果如下所示:
TASK [Count word occurrences] **********************************************************************
ok: [localhost] => {
"msg": [
1,
2,
1,
1,
2,
1,
1,
1
]
}
上述输出结果表示字符串中每个单词的出现次数。例如,第一个元素1表示字符串中的第一个单词出现了1次,第二个元素2表示第二个单词出现了2次,依此类推。