如何从Ansible字典变量中提取rclone返回的文件总数数值
你可以用以下两种方法提取目标数值,两种都会直接输出你需要的867936:
方法1:字符串分割法(格式固定时首选,写法最简单)
因为输出的第一行格式固定为Total objects: 数值,直接按: (冒号加空格)分割字符串取第二部分即可,需要数值类型可以再加int过滤器转换:
- debug: msg: "{{ fileCount.stdout_lines[0].split(': ')[1] | int }}"
方法2:正则匹配法(兼容性更强,不怕格式微小变动)
直接从stdout全局匹配捕获数字,不需要依赖行的位置,更稳妥:
- debug: msg: "{{ fileCount.stdout | regex_search('Total objects: (\\d+)', '\\1') | first | int }}"
说明:
regex_search的第一个参数是正则规则,括号()会捕获匹配到的数字部分- 第二个参数
\1指定返回第一个捕获组的内容,返回结果是列表,所以用first取第一个元素 - 末尾的
| int是可选的,如果你需要用这个值做大小比较、数值计算的话加上即可,单纯打印可以去掉。
内容的提问来源于stack exchange,提问作者Paul Blart
相关产品推荐
相关产品推荐

